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