核算两个时间之间时长

一、需求:需要核算固定日期到当前日期之间的相隔时长;或者需要核算两个日期期间的相隔时长。

二、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 函数:【获取指定日期对应月份的最后一天】

   好记性,不如烂笔头!学到东西,记录下来吧。

原创:如需转载,请注明出处!

原文地址:https://www.cnblogs.com/lgs-19/p/13998354.html