自学内容网 自学内容网

返回两个时间段内的节假日天数,开始日期不计算在内

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)!