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;
写在最后
哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!
相关推荐:
本文来自博客园,作者:Marydon,转载请注明原文链接:https://www.cnblogs.com/Marydon20170307/p/17616059.html