标签:15 -- js ks date dual Oracle 跳过 select
最近客户有个需求,输出一个日期,这个日期是在打印日期的基础上后延15天,并且自动跳过周末。
写一个函数进行调用
create or replace function F_GET_RQ(DyRq varchar2)
return date
-- select F_GET_RQ('2022-06-29') from dual
as
v_ks date;--开始日期
v_jw date;--最终日期
i integer;--计数1
rq char;--判断变量
js integer;--计数2
BEGIN
i := 0;
js := 0;
select to_date(DyRq,'yyyy-MM-dd') into v_ks from dual;
--通过while循环,周一到周五js + 1 当 js 为15时意味着已经取到第十五个工作日,此时的v_ks+i 就是我们要取的值了。
while js < 15 loop
i := i + 1;
select to_char(v_ks+i,'d') into rq from dual;
if rq != '7' and rq != '1' then
js := js + 1;
end if;
end loop;
select v_ks+i into v_jw from dual;
return v_jw;
END F_GET_RQ;
进行调用
select F_GET_RQ('2022-06-29') from dual
标签:15,--,js,ks,date,dual,Oracle,跳过,select 来源: https://www.cnblogs.com/yzxcj/p/16425924.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。