mysql存储过程工作日判断_Oracle存储过程根据指定日期返回(N个)工作日的时间...
一直都没写过Oracle的存储过程,今天突然来了一个需求:计算指定日期的前N个工作日或者后N个工作日日期(去除周末,法定节假日无
一直都没写过Oracle的存储过程,,今天突然来了一个需求:计算指定日期的前N个工作日或者后N个工作日日期(去除周末,法定节假日无法计算),然后研究了一下 Oracle的时间函数和循环方法。具体实现方法如下,也没啥难的,对数据库没研究过,也不知道下面的写法效率怎么样。
或者有没有更好的写法。o(︶︿︶)o 唉!
create or replace procedure proc_CalculationWorkDate
(
plan_date in date,--登录日期
flag in number,--1 往前日期,0往后日期
date_number in number,--天数
out_date out date--计算出的日期
)
is
dayOfWeek number:=0;--星期的数字
dates number:=date_number;--往前或者往后的天数(包含工作日的)初始化给他等于天数
i int:=0;
j int:=0;
begin
if flag=1 then--计算往前日期
while i SELECT to_number(to_char(sysdate+i+j,'D')) into dayOfWeek FROM DUAL;--返回星期代表的数值
if dayOfWeek=1 or dayOfWeek=7 then --周六 周日
dates:=dates+1;
i:=i;
j:=j+1;
else
i:=i+1;
end if;
end loop;
select plan_date+dates into out_date from dual;
--DBMS_OUTPUT.PUT_LINE(dates);
end if;
if flag=0 then --计算往后日期
while i SELECT to_number(to_char(sysdate-i-j,'D')) into dayOfWeek FROM DUAL;
if dayOfWeek=1 or dayOfWeek=7 then
dates:=dates+1;
i:=i;
j:=j+1;
else
i:=i+1;
end if;
end loop;
select plan_date-dates into out_date from dual;
--DBMS_OUTPUT.PUT_LINE(dates);
end if;
end;
本文永久更新链接地址:
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
mysql存储过程工作日判断_Oracle存储过程根据指定日期返回(N个)工作日的时间...相关推荐
- 获取指定日期的第二天的凌晨时间 和获取指定时间+获取指定的天数的日期
获取指定日期的第二天的凌晨时间代码如下: package cn.migu;import java.text.ParseException; import java.text.SimpleDateFor ...
- mysql存储过程基本语法_Oracle存储过程基本语法
存储过程 1CREATEORREPLACEPROCEDURE存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATEORREPLACEPROCEDURE是一个SQL语句 ...
- oracle存储过程无效字符_Oracle存储过程基础+ 错误代码
存储过程创建语法: create or replace procedure 存储过程名(param1 in type,param2 out type) as 变量1 类型(值范围); 变量2 类型(值 ...
- oracle存储过程写法 并行_oracle存储过程的写法
1.存储过程的基本语法: CREATE OR REPLACE PROCEDURE 存储过程名(param1 in type,param2 out type) IS 变量1 类型(值范围); 变量2 类 ...
- plsql 存储过程 批量提交_Oracle 存储过程批量插入数据
oracle 存储过程批量插入大量数据 declare numCount number; userName varchar2(512); email varchar2(512); markCommen ...
- oracle存储过程写法 并行_oracle存储过程写法
表名改过来,试下? create procedurce pro_insert as declare @allAmount double,@per double,@safeQty double,@typ ...
- python根据月份判断季度_python获取指定日期范围内的每一天,每个月,每季度的方法...
1.获取所有天,返回一个列表: def getBetweenDay(begin_date): date_list = [] begin_date = datetime.datetime.strptim ...
- 提供源码:java获取节假日、工作日,存入数据库,查找指定日期前一天,后一天。
提供源码:java获取节假日.工作日,存入数据库,查找指定日期前一天,后一天. 码云地址: https://gitee.com/guyuanman/holiday 业务场景: 好多公司的业务在处理的时 ...
- Java 获取日期前一年、月、日,指定日期的前几天,后几天
1. 方法1: 如果是 java8, 可以使用 LocalDate 获取 // 获取当前日期前一天的日期LocalDate localDate = LocalDate.now().minusDays( ...
最新文章
- WSE 3.0 文档翻译:安装WSE3.0
- 实体链接:信息抽取中的NLP的基础任务
- C#设计模式之二十职责链模式(Chain of Responsibility Pattern)【行为型】
- ubuntu websocket python2
- accept 阻塞怎么断开_暖气片放水就热不放水了就不热,怎么解决?
- 【数据结构与算法】之深入解析“最好买卖股票的时机含冷冻期”的求解思路与算法示例
- java性能监视_Java 9和应用程序性能监视的激动人心之处
- oracle em 删除 重建,Oracle 11g 重建EM需要删除的对象
- PCL编程笔记——Assertion `px != 0' failed.
- 网络是怎样连接的-IP与以太网的包收发操作(三)
- read 文件一个字节实际会发生多大的磁盘IO?
- 淘宝婴儿商品销量分析
- zTree中设置idKey跟pId对象关联
- 中国十大调查研究报告排名数据
- 已知等价关系求商集_等价关系习题 -
- Watching the English:英国社会阶层攀爬指南?
- 【前端】你真的理解JavaScript中的变量和数据类型吗
- Html5+Css3实现类似网易云音乐的移动版播放器
- 服务器硬盘红灯常亮_服务器硬盘灯常亮红色
- 英国全能数学家John Conway因新冠去世,他曾发明风靡一个时代的电脑游戏,还能心算万年历...