2017-03-06 7 views
-1

テーブルのすべての値の日付形式をチェックし、正しい場合は1を返し、falseの場合は0を返します。ここまでは自分のコードです。SQL Serverの日付形式を確認する方法

(Case when new_originationdate is not NULL 
    AND new_originationdate not like '[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]' 
     then 1 else 0 end) as CIEDIT_SYN_41, 
+0

お試しいただきありがとうございます。あなたの問題を解決しましたか?そうでない場合は、何が問題なのですか? – dfundako

+0

いいえ、私は "Select * from#ci_run_comparison4 CIEDIT_SYN_41 = '1'"というクエリーを実行してもデータベース内のすべての日付を表示しますが、正しく動作する場合はすべての日付が正しい形式 –

答えて

1

このアプローチの問題は、「2017-13-32」を有効な日付として扱うことです。そうではありません。

実行しているプラ​​ットフォームを指定していません。 DBプラットフォーム(SQL Serverの場合はthis linkを参照)によって提供される日付/時刻関数を使用して、文字列を実際のDateTime値にキャストできます。キャストが成功した場合、文字列は有効な日付です。

+0

日付形式をテストするために部分文字列テストを使用して終了しました。 (new_originationdateがNULLでない場合 \t \t AND(ストリング(new_originationdate、5,1)= ' - ' \t \t \tとストリング(new_originationdate、8,1)= ' - ' リンクの –

+0

感謝。。。。しかし、私はそれを感謝します! –

関連する問題