問題:
空字串與 NULL 日期比對。
SELECT
CASE
WHEN
DATEDIFF(D,NULL,'2012/12/01') > 365
THEN
'NULL 異常'
WHEN
DATEDIFF(D,'','2012/12/01') > 365
THEN
'空字串異常'
ELSE
'正常'
END
OUT PUT:
空字串異常
解決方法:
條件式濾除 NULL 和 空字串。
討論:
DATEDIFF
函式中應注意事項,如果 startdate
或 enddate 其中之一只有時間部分,而且另一個項目只有日期部分,則遺漏的時間和日期部分都會設定為預設值。遺漏日期部分的值就會設定為預設值:1900-01-01[1]。
參考文獻:
0 意見:
張貼留言