我需要得到兩個日期之間的結果如下:- SQL服務器
DATE_START = 01/01/2010
DATE_END = 2012年10月21日
結果:1年,9數月和20天。
我試了下面的代碼,但它沒有奏效。它有時會返回負值日期:
SELECT CAST(DATEDIFF(yy, date_start, date_end) AS varchar(4)) +' year '+
CAST(DATEDIFF(mm, DATEADD(yy, DATEDIFF(yy,date_start , date_end), date_start), date_end) AS varchar(2)) +' month '+
CAST(DATEDIFF(dd, DATEADD(mm, DATEDIFF(mm, DATEADD(yy, DATEDIFF(yy, date_start, date_end), date_start), date_end), DATEADD(yy, DATEDIFF(yy, date_start, date_end), date_start)), date_end) AS varchar(2)) +' day' AS result
謝謝!
你確定預期的結果爲1年9個月或2歲9個月 –
,做你想要什麼,如果開始日期是'2010-01-19'得到的時間差或'2010-01-21'? –
無論您如何得到結果,請注意您對輸出所做的事情。請記住,一個月不是一個精確的時間單位。如果你的用戶知道其中的一點,比如「從現在開始的三個月」或「三個月前」,那很好。但沒有一個參考點,一個「月」是毫無意義的。 –