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;