アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在SQLserver上で、、CSVを一時テーブルに保管し、ある条件に合致する行のみTBLに追加するというストアドを書いています。そのTBLには「datetime型」の列があります。
この作業で、2点問題が発生しています。
(1)CSVファイルから一時テーブルにデータを入れようとすると、datetime列がNULLの場合、型の不一致でエラーが発生します。
(2)上記において、一時テーブルの型をとりあえずvarcharにしておくと入れれるのですが、TBLに追加しようとする際、「convert(datetime,変数)」としているのですが、上手くキャストしてくれません。(「文字列から日付への変換に失敗しました」のような文がでます)

どのようにすれば、NULLでもdatetimeに入れられるのでしょうか?教えてください。

A 回答 (1件)

## Nullじゃなくて''(空文字)が登録されているような気がしますが。

。。
## select case when 変数 is null then 'NULL' when 変数 = '' then '空' else 'OK' end
## from CSVファイル
## でNullと出ずに、空とでたらそうです。
## 調べてみないと分らないので、それはさておき、

とりあえず、
convert(datetime,変数)
のほうは、
case
when 変数 is null then null
when 変数 = '' then null
else convert(datetime,変数)
end
としたらうまくいくのではないかと思います。
datetime型の変数がNot Null指定でテーブルを作っているとダメですが。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
回答をもとに、いろいろ試したらできるようになりました。

お礼日時:2013/03/24 02:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A