2012-05-02 351 views
3

我有兩個日期,我想找到他們之間的年數,但我需要顯示的值到小數點後兩位。我曾嘗試以下,但我總是得到一個返回值的0作爲我所有的日期沒有覆蓋整個一年:DateDiff年到小數

DATEDIFF(yy, @EndDateTime, i.mat_exp_dte) 

然後我試圖找到這兩個,然後除以之間的天數365,但這仍然返回0:

DATEDIFF(dd, @EndDateTime, i.mat_exp_dte)/365 

現在我很困惑如何計算這一點。我需要將DataDiff轉換爲不同的數據類型嗎?

回答

13

試試這個。

DATEDIFF(dd, @EndDateTime, i.mat_exp_dte)/365.0 

用int除int返回int。除以小數點後,您將得到小數點。

+0

sql中的命令是什麼切割(! - 不是圓的)小數位? (讓說2)? 1.12345 ---> 1.12 –

+0

select cast(1.19999 as numeric(3,2))= 1.20 ..... bad ... :) –

+0

@RoyiNamir - 最後一次嘗試:)'select round(1.19999,2,1) ' –

2

.0代表浮點數,因此計算包括小數。沒有它你計算整數除法。