一、需求:需要核算固定日期到当前日期之间的相隔时长;或者需要核算两个日期期间的相隔时长。
二、Oracle语法如下:
select--这个是核算的,核算20200927到当前日期相隔时长,设置固定日期为20200927-- floor(months_between(sysdate, to_date(substr('20200927', 0, 8), 'YYYYMMDD'))) || '个月' || case when (to_char(sysdate, 'dd') - to_char(to_date(substr('20200927', 0, 8), 'YYYYMMDD'), 'dd') >= 0) then (to_char(sysdate, 'dd') - to_char(to_date(substr('20200927', 0, 8), 'YYYYMMDD'), 'dd')) ELSE to_char(last_day(to_date(substr('20200927', 0, 8), 'YYYYMMDD')), 'dd') - to_char(to_date(substr('20200927', 0, 8), 'YYYYMMDD'), 'dd') + to_char(sysdate, 'dd') END || '天' as date2 from dual
三、总结:
1)、核算中的日期如有差异,相应的转换即可
2)、函数说明:months_between 函数可参考:【获取两个日期之间相隔多少个月】
https://www.cnblogs.com/pumushan/p/6655204.html
last_day 函数:【获取指定日期对应月份的最后一天】
好记性,不如烂笔头!学到东西,记录下来吧。
原创:如需转载,请注明出处!