Oracleの生年月日列に基づいて年齢列がnullの場合、年齢列を更新する方法は? テーブル t1:(ソース テーブル)
名前ドブ年齢 aaa 1985 年 6 月 12 日 bbb 1991 年 5 月 15 日 ccc 2000 年 8 月 23 日
次のようなターゲット テーブル:
名前ドブ年齢 aaa 12-JUN-1985 28 bbb 15-MAY-1991 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)