栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用Oracle获得年龄,月份和天数的年龄

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用Oracle获得年龄,月份和天数的年龄

与Lalit的答案非常相似,但是您可以

add_months
通过按整个月的总差异进行调整来获得准确的天数,而无需假设每月有30天:

select sysdate,  hiredate,  trunc(months_between(sysdate,hiredate) / 12) as years,  trunc(months_between(sysdate,hiredate) -    (trunc(months_between(sysdate,hiredate) / 12) * 12)) as months,  trunc(sysdate)    - add_months(hiredate, trunc(months_between(sysdate,hiredate))) as daysfrom emp;SYSDATE    HIREDATE        YEARS     MonTHS       DAYS---------- ---------- ---------- ---------- ----------2015-10-26 1980-12-17         34         10          92015-10-26 1981-02-20         34          8          62015-10-26 1981-02-22         34          8          42015-10-26 1981-04-02         34          6         242015-10-26 1981-09-28         34          0         282015-10-26 1981-05-01         34          5         252015-10-26 1981-06-09         34          4         172015-10-26 1982-12-09         32         10         172015-10-26 1981-11-17         33         11          92015-10-26 1981-09-08         34          1         182015-10-26 1983-01-12         32          9         142015-10-26 1981-12-03         33         10         232015-10-26 1981-12-03         33         10         232015-10-26 1982-01-23         33          9          3

您可以通过反转计算来验证:

with tmp as (    select trunc(sysdate) as today,      hiredate,      trunc(months_between(sysdate,hiredate) / 12) as years,      trunc(months_between(sysdate,hiredate) -        (trunc(months_between(sysdate,hiredate) / 12) * 12)) as months,      trunc(sysdate)        - add_months(hiredate, trunc(months_between(sysdate,hiredate))) as days    from emp)select * from tmpwhere today != add_months(hiredate, (12 * years) + months) + days;no rows selected


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/391435.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号