2017-11-21 19 views
0

SQL Serverを使用していて、DBへの書き込みアクセス権がありません。私は抽出することしかできません。SQL Serverクエリで空白になる日付フィールドが必要です

レコードがあるかどうかを確認するためにnph2テーブルに参加しています。レコードがない場合は、フィールドを空白にするだけです。私がやろうとしています何を説明するために、フィールドの一つは、「ステータス」であり、これは正常に動作します:

case when lsf2.STARTDATE > lsf.STARTDATE and lsf2.STARTDATE is not NULL then 
lsf2.LEGALSTATUS else '' end as 'Status' 

他のフィールドが日付フィールドであると私は何も同様の作業をすることはできません。例:

case when lsf2.STARTDATE > lsf.STARTDATE and lsf2.STARTDATE is not NULL then 
nph2.STARTDATE else '' end as 'StartDate' 

「1900-01-01 00:00:00」やエラーが発生し続ける。

私はなぜそれを得ているのか理解しています。私は変換するためにいくつかの方法を試しましたが、何も動作しません。

基本的に、それに合致するレコードがないために日付のケースが満たされない場合は、他のデータを含む行が必要ですが、日付フィールドには何も入力しないでください。どんなアイデアも素晴らしいだろう。

+1

完全なクエリを投稿できますか? – SEarle1986

答えて

1

結果にNULLを解決するか、式全体をにvarchar型にキャストする必要があります。空の文字列を日付列に入れることはできません。

coalesce(cast(case when lsf2.STARTDATE > lsf.STARTDATE then nph2.STARTDATE else NULL end as varchar(20)),'') as 'StartDate' 
+0

ありがとうございます!あなたは狂った天才です、それは動作します!私は合体を理解していないので、それを読む必要があります。私は質問があります。日付がある場所は次のように書式設定されています: 'Feb 19 2016 12:00 AM'代わりに '2016-02-19'にフォーマットする方法はありますか?助けてくれてありがとう! –

関連する問題