我有一个带有DOB和DOD(死亡日期(Nullable))字段的Person表。
我想添加一个显示人口年龄的计算列,如果是DOD ISNULL
则使用DOB计算,或者如果DOD IS NOT NULL
则使用DOD计算。
任何帮助都会很棒。到目前为止,我有以下但没有工作:
CASE WHEN ISNULL(DOD) THEN (datediff(year,[DOB],getdate())-case when
(datepart(month,[DOB])*(32)+datepart(day,[DOB]))>(datepart(month,getdate())
*(32)+datepart(day,getdate())) then (1) else (0) end) ELSE (datediff(year,
[DOD],getdate())-case when (datepart(month,[DOD])*(32)+datepart(day,[DOD]))>
(datepart(month,getdate())*(32)+datepart(day,getdate())) then (1) else (0) end)
END
答案 0 :(得分:1)
试试这个:
DATEDIFF(year,[DOB],COALESCE([DOD], GETDATE())