SQL DOB DOD年龄计算字段

时间:2014-04-29 22:25:43

标签: sql .net

我有一个带有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

1 个答案:

答案 0 :(得分:1)

试试这个:

DATEDIFF(year,[DOB],COALESCE([DOD], GETDATE())