第一步:
创建一个表格holiday用于灵活存放节假日日期(周末除外),如果和周末日期重复,则无需添加到该表格中:
create table T_RENT_HOLIDAY (
ID VARCHAR2(45) not null,
HL_DATE DATE,
HL_DESC VARCHAR2(500),
REMARK VARCHAR2(500),
constraint PK_HOLIDAY primary key (ID)
);
comment on table T_RENT_HOLIDAY is
‘节假日日期表(不含周末)’;

comment on column T_RENT_HOLIDAY.ID is
‘节假日编号’;

comment on column T_RENT_HOLIDAY.HL_DATE is
‘节假日期’;

comment on column T_RENT_HOLIDAY.HL_DESC is
‘假日说明’;

comment on column T_RENT_HOLIDAY.REMARK is

‘备注’;

第二步:写个函数用以获取两个日期之间的周末天数,如下:
create or replace function func_rent_weekend_count(startdate date,enddate date)
return number
/*返回两个时间段内的周末天数,开始日期不计算在内/
is
weekend_num number:=0;
tempdate date;
begin
tempdate:=startdate+1;
while tempdate<=enddate loop
weekend_num:=weekend_num+(case when to_char(tempdate,’day’) in(‘星期六’,’星期日’) then 1 else 0 end);
tempdate:=tempdate+1;
end loop;
return weekend_num;
end;

第三步:编写函数用以获取指定日期延迟特定工作日以后的具体日期,如下:
create or replace function func_rent_getDeferDate(startdate date,deferDay number)
return date
/*返回延期后的日期/
is
enddate date :=startdate+deferDay;–延期后的日期
holiday_num number:=0;–节假日天数
weekend_num number:=0;–周末天数
nonework_num number :=0;–非工作日天数
begin

–获取周末天数
weekend_num:=weekend_count(startdate,enddate);
–获取节假日天数
select nvl(count(1),0) into holiday_num from T_RENT_HOLIDAY a where a.hl_date is not null and a.hl_date > startdate and a.hl_date <= enddate;

nonework_num:=weekend_num+holiday_num;
if nonework_num !=0 then
enddate :=getDeferDate(enddate,nonework_num);

end if;
return enddate;
end;

第四步:实际应用,如下:
select func_rent_getDeferDate(sysdate-1,5) deferdate from dual;

oracle计算一个日期加上指定工作日(排除周六周日和一系列节假日)时间相关推荐

  1. java 算出下一个工作日,Java:计算一个日期加下指定工作日数(排除周六周日和一系列节日)...

    Java:计算一个日期加上指定工作日数(排除周六周日和一系列节日) 工作时遇到的,随便写了个,欢迎高手点评: 核心代码: package www.sjjjob.com.date; import jav ...

  2. (C++)设计一个程序能计算一个日期加上若干天后是什么日期and计算日期差值

    输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数. 输出m行,每行按yyyy-mm-dd的个数输出. #include<cstdio>//判断是否是闰年 bool ...

  3. (C++)设计一个日期类Date,包括年、月、日等私有数据成员。要求实现日期的基本运算,包括某日期加上指定天数、某日期减去指定天数、两个日期相差的天数等。

    C++面向对象程序设计课后作业第239页第5题 题目要求:设计一个日期类Date,包括年.月.日等私有数据成员.要求实现日期的基本运算,包括某日期加上指定天数.某日期减去指定天数.两个日期相差的天数等 ...

  4. Oracle计算当前日期在N个工作日之后的日期

    最近项目中有一个自动扣款的需求,需要在商品出售之后 7 个工作日之后进行自动扣款,由此封装了一个存储过程以便于调用. 注意:本示例使用oracle. 一.创建一张GGHOLIDAY表并insert部分 ...

  5. python输入日期计算天数_用python计算日期(1、返回指定日期所在的一周,2,计算一个日期的月份和天数加减)...

    放两个小轮子吧,欢迎测试bug,然后告诉我: 1.返回指定日期所在的一周 2,计算一个日期的月份和天数加减 # -*- coding: utf-8 -*- """ Cre ...

  6. java判断一个日期是否为工作日

    java判断一个日期是否为工作日 /*** @Author :feiyang* @Date :Created in 7:47 PM 2019/12/3*/ public class LocalDate ...

  7. Oracle 计算两日期间隔月数

    Oracle 计算两日期之间月数 实际应用中,有时候会计算两日期间隔天数.月数.如直接相减,可能会出问题,如: select 202110-202106 from dual; 结果为:4 看似正确,但 ...

  8. Java模块 -- 计算工作日 (Excel导入法定假日至数据库 排除周六 周日 法定假日) Calendar

    有一个小功能,要求是按照指定时间,计算出规定的工作日,排除国家法定节假日,周日,周六... 网上找了一些案例,但都算不准,但是它们的思路和方法可以借鉴下...于是一边想,一边改...就出来了.... ...

  9. 后N天C语言,c语言计算一个日期的下一天后N天后的日期

    http://blog.sina.com.cn/s/blog_6be3556a0101g87u.html 方法一: ------------------------------------------ ...

最新文章

  1. python 把列表或者元组转成集合
  2. 用泛型方法Java从实体中提取属性值,以及在泛型方法中的使用
  3. JavaScript实现在线进制转换工具网站 -toolfk程序员在线工具网
  4. 通过GPG非对称加密工具验证ECharts发布版本实例演示,win10下Gnu Privacy Guard工具的安装和使用方法
  5. 机器人的动力学和动力学联系_通过机器学习了解幸福动力学(第2部分)
  6. 测试连接redis时报错redis.clients.jedis.exceptions.JedisConnectionException: Failed to create socket.
  7. js中while死循环语句_如何检测JavaScript中的死循环?
  8. Spring MVC前后台交互(前台ajax传递数据,后台controller接收数据返回json对象)
  9. 把1,2,3…n*n 的数字按照顺时针螺旋的形式填入数字矩阵
  10. 关于.net 页面提交后 css失效或者部分失效的问题
  11. c语言写识别电压的程序,PIC单片机C语言编程实例——交流电压测量
  12. python FTPS使用ftplib下载文件(详细)
  13. CAD坐标系(UCS)
  14. Docker Macvlan
  15. SQLmap注入学习实战 —— dvwa 从low到impossble
  16. 调用微信接口上传图片总结
  17. python3 x完全兼容_中国大学MOOC: Python 3.x 系列版本代码完全兼容 Python 2.x系列的既有语法。...
  18. 如何在vscode、remix中结合hardhat编译部署合约
  19. 使用git时出现fatal: Authentication failed for
  20. Java里子类调用父类构造方法问题

热门文章

  1. 为什么MIPS和MFLOPS不能代表性能?
  2. 【2023年最新版】Kali安装详细教程
  3. Java--十大排序算法之归并排序
  4. 本科毕业、硕士毕业和博士毕业PPT制作和预答辩、答辩注意事项
  5. mysql innodb 存储引擎
  6. 即时聊天APP(一)
  7. 前端Vue.js框架是什么?有哪些特点?
  8. MySql将两个字段查询值合并拼接
  9. 【SQL】遍历字符串之Substr
  10. rhel7 pcs pacemaker corosync配置主从高可用