1

SQL クエリで日付値を確認したいと思います。日付が定義済みの日付と等しい場合は何も出力せず、ELSE は既存の日付値を出力します。

目的の日付値を取得するにはどうすれば正しく記述できますか?

次のクエリがあります。

(SELECT (CASE 
             WHEN (PaymentsMade.PaymentDate = '09/09/1987') THEN ' '
             ELSE PaymentsMade.PaymentDate
         END)
 ) as dateOfPayment

このクエリを実行すると、日付が '09/09/1987' の場合は正しく動作しますが、日付が '09/09/1987' でない場合は '01/01/1900' と出力されます。

定義済みの日付「09/09/1987」と等しくない日付値を取得するにはどうすればよいですか?

アドバイスをいただければ幸いです。ありがとう

4

4 に答える 4

0

空の文字列ではなく、NULL を使用してください

空の文字列は暗黙的にゼロにキャストされます。これは '01/01/1900' です。

SELECT CAST('' AS datetime)
于 2013-05-27T09:40:05.377 に答える
0

ステートメントを使用すると、そのフィールドの値が変更されますが、返されるCASEは変更されません。

を除外したいようです、その場合は句を使用してください...WHERE

SELECT
  *
FROM
  PaymentsMade
WHERE
  PaymentDate <> '09/09/1987'
于 2013-05-27T09:42:07.537 に答える