SQL如何从出生日期计算年龄

时间:2021-06-03 16:40:45

标签: sql oracle-apex

有谁知道如何从出生日期计算年龄??使用 to_char?

  birth_date  
  ------------------  
  2/4/1972
  23/4/1999
  21/8/2001

2 个答案:

答案 0 :(得分:2)

我认为最好的方法是months_between()

trunc(months_between(sysdate, dob) / 12)

答案 1 :(得分:2)

如果您想计算年、月和日,那么您的解决方案就在这里。 (您也可以选择仅选择年份。然后忽略月份和日期列)

 create table temptable (birth_date date);

 insert into temptable values(date '1972-04-02');
 insert into temptable values(date '1999-04-23');
 insert into temptable values(date '2001-08-21');

查询:

 select trunc(months_between(sysdate,birth_date)/12) year,
            trunc(mod(months_between(sysdate,birth_date),12)) month,
            trunc(sysdate-add_months(birth_date,trunc(months_between(sysdate,birth_date)/12)*12+trunc(mod(months_between(sysdate,birth_date),12)))) day
     from temptable

输出:

<头>
YEAR MONTH DAY
49 2 1
22 1 11
19 9 13

dbhere