最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle存储过程根据指定日期返回(N个)工作日的时间

来源:懂视网 责编:小采 时间:2020-11-09 14:55:59
文档

Oracle存储过程根据指定日期返回(N个)工作日的时间

Oracle存储过程根据指定日期返回(N个)工作日的时间:一直都没写过Oracle的存储过程,今天突然来了一个需求:计算指定日期的前N个工作日或者后N个工作日日期(去除周末,法定节假日无 一直都没写过Oracle的存储过程,今天突然来了一个需求:计算指定日期的前N个工作日或者后N个工作日日期(去除周末,法定节
推荐度:
导读Oracle存储过程根据指定日期返回(N个)工作日的时间:一直都没写过Oracle的存储过程,今天突然来了一个需求:计算指定日期的前N个工作日或者后N个工作日日期(去除周末,法定节假日无 一直都没写过Oracle的存储过程,今天突然来了一个需求:计算指定日期的前N个工作日或者后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;

本文永久更新链接地址:

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

Oracle存储过程根据指定日期返回(N个)工作日的时间

Oracle存储过程根据指定日期返回(N个)工作日的时间:一直都没写过Oracle的存储过程,今天突然来了一个需求:计算指定日期的前N个工作日或者后N个工作日日期(去除周末,法定节假日无 一直都没写过Oracle的存储过程,今天突然来了一个需求:计算指定日期的前N个工作日或者后N个工作日日期(去除周末,法定节
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top