如果基于oracle中的出生日期列的年龄列为空,如何更新年龄列? 表t1 :(来源表)
Name dob age aaa 12-JUN-1985 bbb 15-MAY-1991 ccc 23-AUG-2000
目标表如下:
Name dob age aaa 12-JUN-1985 28 bbb 15-MAY-1991 22 ccc 23-AUG-2000 13
答案 0 :(得分:2)
update the_table
set age = months_between(current_date, dob) / 12
where age is null;
答案 1 :(得分:2)
UPDATE table
SET age =trunc(months_between(sysdate,dob)/12)
WHERE age is null;
答案 2 :(得分:0)
你能试试吗?
UPDATE <your table> SET age = NVL(age, MONTHS_BETWEEN(sysdate,dob)/12)
答案 3 :(得分:0)
我肯定在这个阵营应该是一个基于出生日期的计算字段,因为你将不断更新它。
如果你需要这样做,我建议:
UPDATE [YOUR TABLE]
SET age = NVL(age, 24 * (sysdate - dob)/8766)
这将通过使用小时数来考虑闰年:8766/24 = 365.25