返回两个时间段内的节假日天数,开始日期不计算在内
create or replace function days_between(startdate date,enddate date )
return number
/**返回延期后的日期*/
is
holiday_num number:=0;--节假日天数
weekend_num number:=0;--周末天数
nonework_num number :=0;--非工作日天数
begin
--获取周末天数
--weekend_num:=0;
--weekend_num:=weekend_count(startdate,enddate);
--获取节假日天数包含周末
select nvl(count(1),0) into holiday_num from ba_jcsz_jiejiari a where a.riqi is not null and a.riqi > startdate and a.riqi <= enddate;
nonework_num:=weekend_num+holiday_num;
/*if nonework_num !=0 then
enddate :=getDeferDate(enddate,nonework_num);
*/
return nonework_num;
测试
SELECT days_between(to_date('2024/9/1','yyyy/mm/dd'),sysdate) FROM dual;
原文地址:https://blog.csdn.net/zcj18537150970/article/details/142462406
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!