oracle 年龄计算 岁 月 天

select trunc(months/12) || '岁' || trunc(mod(months, 12)) || '月' ||
       trunc(sysdate - add_months(birth, trunc(months))) || '天' age
  from (select months_between(sysdate, birth) months, birth
          from (select date '2016-1-1' birth from dual));
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Oracle中可以使用TO_CHAR函数来格式化日期,也可以使用EXTRACT函数来提取日期中的年份、份、日期信息。 下面是一个例子,假设现在的日期是2022年1216日,想要计算出生日期为2000年11日的人的年龄: ``` SELECT TO_CHAR(EXTRACT(YEAR FROM SYSDATE) - EXTRACT(YEAR FROM TO_DATE('2000-01-01', 'YYYY-MM-DD')) || '' || EXTRACT(MONTH FROM SYSDATE) - EXTRACT(MONTH FROM TO_DATE('2000-01-01', 'YYYY-MM-DD')) || '' || EXTRACT(DAY FROM SYSDATE) - EXTRACT(DAY FROM TO_DATE('2000-01-01', 'YYYY-MM-DD')) || '' ) AS age FROM dual; ``` 执行上面的语句后,会得到输出结果:221115 注意:上面的例子是基于当前日期计算年龄的,如果想要计算某一个指定日期之后的年龄,则需要把系统日期替换成指定的日期。 ### 回答2: Oracle根据生日计算年龄的方法如下: 首先,需要获取当前日期和出生日期的差值,用年日分别对应年龄。 假设现在是2022年630日,出生日期为1998年11日,那么计算流程如下: 1. 获取当前日期,即2022年630日 2. 获取出生日期,即1998年11日 3. 计算年龄,即当前年份减去出生年份,即2022-1998 = 24 4. 计算年龄: 4.1 如果当前份大于出生份,则年龄份为当前份减去出生份,即6-1=5 4.2 如果当前份小于出生份,则年龄份为当前份加上12再减去出生份,即6+12-1=17 4.3 如果当前日期大于出生日期,则年龄数为当前日期减去出生日期,即30-1=29 4.4 如果当前日期小于出生日期,则年龄数为当前日期加上当前份的数再减去出生日期,即30+31-1=60 综上所述,根据给定的出生日期计算得到的年龄为24,17,29(假设当前日期是2022年630日)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值