有谁知道如何从出生日期计算年龄??使用 to_char?
birth_date
------------------
2/4/1972
23/4/1999
21/8/2001
答案 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 |
db