2

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
4

4 に答える 4

2
UPDATE table
   SET age =trunc(months_between(sysdate,dob)/12)
 WHERE age is null; 
于 2013-07-04T10:35:14.753 に答える
2
update the_table
  set age = months_between(current_date, dob) / 12
where age is null;
于 2013-07-04T10:32:23.510 に答える
0

常に更新する必要があるため、生年月日に基づいて計算されたフィールドにする必要があります。

それを行う必要がある場合は、次のことをお勧めします。

UPDATE [YOUR TABLE]
SET age = NVL(age, 24 * (sysdate - dob)/8766)

これは、時間を使用して閏年を考慮します。8766/24 = 365.25

null 値を代入するための NVL 関数に関する情報

于 2013-07-04T11:58:29.123 に答える
0

これを試すことができますか?

UPDATE <your table> SET age = NVL(age, MONTHS_BETWEEN(sysdate,dob)/12)
于 2013-07-04T10:33:45.587 に答える