我需要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