Oracle 甲骨文将出生日期改为年龄
我需要使用日期格式和系统日期中的Dob列将出生日期转换为当前年龄(以年为单位),但将结果填充到Dob列中。 日期格式为dd-mm-yy。Oracle 甲骨文将出生日期改为年龄,oracle,date,formatting,Oracle,Date,Formatting,我需要使用日期格式和系统日期中的Dob列将出生日期转换为当前年龄(以年为单位),但将结果填充到Dob列中。 日期格式为dd-mm-yy。 我已尝试使用to_char和to_number函数从sys date中减去,假设您只需要几年,并且您的dob列是date,您可能需要: select dob, floor(months_between(sysdate, dob) / 12) age from yourTable 例如: with yourTable(dob) as ( select
我已尝试使用to_char和to_number函数从sys date中减去,假设您只需要几年,并且您的
dob
列是date
,您可能需要:
select dob, floor(months_between(sysdate, dob) / 12) age
from yourTable
例如:
with yourTable(dob) as (
select date '2000-02-01' from dual union all
select date '2000-02-02' from dual union all
select date '2000-01-31' from dual
)
select dob, floor(months_between(sysdate, dob) / 12) age
from yourTable
给出:
DOB AGE
---------- ----------
2000-02-01 18
2000-02-02 17
2000-01-31 18
3 rows selected.
如果您需要年、月和日作为出生日期列。您可以执行以下操作
select sysdate,
date_of_birth,
trunc(months_between(sysdate,date_of_birth) / 12) as years,
trunc(months_between(sysdate,date_of_birth) -
(trunc(months_between(sysdate,date_of_birth) / 12) * 12)) as months,
trunc(sysdate) - add_months(date_of_birth, trunc(months_between(sysdate,date_of_birth))) as days
from table_name;
请张贴您迄今为止所做的尝试,以及一些样本数据和所需结果。例如,是否只需要年作为整数?奇特小数。。。
date
列没有“格式”。类似于(sysdate-dob)/365
的东西可能就是您想要的