Oracle function实现根据输入的日期以及天数,获取此日期之后的天数的工作日

前提:在法定节日表(t_fdjr )中维护法定节日包括周六周天

/**
* 功能描述:根据输入的日期以及天数,获取此日期之后的天数的工作日
* 输入参数:
* i_date YYYY-MM-DD
* i_day 天数
*/
create or replace function fun_get_workday(i_date varchar2, i_day number) 
return varchar2
is
 k int:=0;
 d1 date;
 d2 date;
begin
  k := i_day; 
  d1 := to_date(i_date, 'YYYY-MM-DD');
  d2 := d1 + k;
  while k > 0  loop
     select count(c_rq) into k from t_fdjr t
        where t.c_rq  > d1 and t.c_rq <= d2;
     d1 := d2;
     d2 := d2 + k;   
  end loop;

 return to_char(d2,'YYYY-MM-DD');
end;

 

posted @ 2017-06-23 17:01  yshy  阅读(973)  评论(0编辑  收藏  举报