2012-11-09 110 views
1

我有當其他兩列更新,該列的公式是計算使用SQL Server列日期

SELECT(datediff(day,'2012-11-01 18:15:00.000','2012-10-22 11:59:58.000')) 

它工作正常的所有其他日期,但當月變化時更新計算列,那麼我得到一個負值。我怎樣才能確保這不會發生,我得到正確的整數值?

回答

1

嘛,有兩個選項:

  1. 只需確保較早日期始終在您的日期列表中第一個爲DATEDIFF

    SELECT DATEDIFF(DAY, '2012-11-01 18:15:00.000', '2012-10-22 11:59:58.000') 
    

    這給你的結果 - 10 - 這是因爲列表中的第一個日期是日期。

    如果使用

    SELECT DATEDIFF(DAY, '2012-10-22 11:59:58.000', '2012-11-01 18:15:00.000') 
    

    你的的結果 - 因爲在DATEDIFF第一日期較早的日期。

  2. 只是用ABS得到絕對值(沒有+或 - ):

    SELECT ABS(DATEDIFF(DAY, '2012-11-01 18:15:00.000', '2012-10-22 11:59:58.000')) 
    

    在這種情況下,你永遠得到負值。

+0

感謝一百萬......我覺得很明顯的愚蠢...... – vbNewbie