2013年5月9日 星期四

空字串與 NULL 日期比對。



問題:
空字串與 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]

參考文獻:
1.       DATEDIFF (Transact-SQL)


0 意見:

張貼留言