我需要SQL Server 2012幫助來計算報告的年齡段。在SQL中計算年齡年齡
基本上,我有兩個領域的startDateTime和EndDateTime,這裏是下面的一些樣本數據:
StartDateTime EndDateTime
2006-10-10 16:08:13.523 2008-04-11 00:00:00.000
2016-05-11 13:03:48.093 2016-06-16 00:00:00.000
2016-08-01 12:44:42.990 2016-08-01 00:00:00.000
2016-05-20 17:33:27.957 2016-05-25 00:00:00.000
2006-10-19 21:41:41.350 NULL
目前我正在試圖作出AgingYears字段來計算這兩個領域之間的老齡化十年(儘可能準確。)當EndDateTime爲NULL時,它應計算GETDATE()和StartDateTime之間的差異。當StartDateTime大於EndDateTime(我不知道爲什麼我有這樣的數據,但我這樣做),那麼它應該只返回0.
我試着做一些基於網站的代碼我發現相關的,但它並沒有幫助我很多,這是我卡在哪裏:
DATEDIFF(YY, StartDateTime, EndDateTime) -
CASE
WHEN DATEADD(YY,DATEDIFF(YY,StartDateTime, EndDateTime),StartDateTime)
> A.[END_DTTM]
THEN DATEDIFF(YY, StartDateTime, EndDateTime)- 1
ELSE DATEDIFF(YY, StartDateTime, EndDateTime)
END AS AgeInYears,
任何幫助我的代碼將不勝感激。
你能告訴您的樣本數據的預期效果? – Aducci
[如何根據出生日期和getDate()]計算年齡(以年計)可能的重複(http://stackoverflow.com/questions/1572110/how-to-calculate-age-in-years-based-在出生日期和getdate) –
@JeremyDanyow看來,在其他問題上的大部分答案是相當複雜,可能是錯誤的,雖然我確信有其他人確實有計算時代的方法(不管語言如何。) – shawnt00