oracle 根据出生日期计算年龄(岁、月、天)

1.情景展示

oracle如何根据日期类型计算年龄

2.具体分析

我们可以根据出生日期到系统当前时间,计算出间隔月数,并除以12取整就可以计算出年龄。

3.解决方案

TRUNC(MONTHS_BETWEEN(SYSDATE, P.BIRTH_DAY ) / 12) AS AGE

示例2

SELECT SYSDATE "currentTime",
       TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE('2000-09-01', 'YYYY-MM-DD')) / 12) AS AGE
  FROM DUAL

4.拓展

年龄划分:

超过12个月,单位为岁,超过30天,单位为月,小于30天,单位为天。

SELECT DECODE(TRUNC(MONTHS_BETWEEN(SYSDATE, T1.BIRTH_DAY) / 12),
              0,
              DECODE(TRUNC(TO_NUMBER(TRUNC(SYSDATE - T1.BIRTH_DAY) / 30)),
                     0,
                     TRUNC(SYSDATE - T1.BIRTH_DAY),
                     TRUNC(TO_NUMBER(TRUNC(SYSDATE - T1.BIRTH_DAY)) / 30)),
              TRUNC(MONTHS_BETWEEN(SYSDATE, T1.BIRTH_DAY) / 12)) "age",
       DECODE(TRUNC(MONTHS_BETWEEN(SYSDATE, T1.BIRTH_DAY) / 12),
              0,
              DECODE(TRUNC(TO_NUMBER(TRUNC(SYSDATE - T1.BIRTH_DAY) / 30)),
                     0,
                     '天',
                     '月'),
              '岁') "ageUnit",
       T1.BIRTH_DAY
  FROM WJ_PATIENT_INFO T1;

 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

posted @ 2023-08-09 09:39  Marydon  阅读(1882)  评论(0编辑  收藏  举报