欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

oracle获取指定日期内工作日的天数或节假日天数

程序员文章站 2022-05-17 20:32:30
...

oracle

获取指定日期内工作日的天数

不必拘泥,可以反向思考

获取这段时期内周六日的天数,再用总天数减去周六日的天数,得到我们想要的

获取时间段内

所有日期 

select to_date('2021-11-13 02:02:00', 'yyyy-mm-dd hh24:mi:ss')+lv-1 dt
from
(
select level lv
from dual
connect by level <= trunc(sysdate -to_date('2021-11-13 02:02:00', 'yyyy-mm-dd hh24:mi:ss'), 0)
) tt

oracle获取指定日期内工作日的天数或节假日天数

计算周六日总数

select sum(case when to_char(dt,'day')='星期六' or to_char(dt,'day')='星期日' then 1 else 0 end) as cnt
from
(
select to_date('2021-11-13 02:02:00', 'yyyy-mm-dd hh24:mi:ss')+lv-1 dt
from
(
select level lv
from dual
connect by level <= trunc(sysdate -to_date('2021-11-13 02:02:00', 'yyyy-mm-dd hh24:mi:ss'), 0)
) tt
) tm;