oracle function 用于判断是否为节假日

狂风中的少年 提交于 2019-11-26 17:16:54

create or replace function isHoliday(dateOfYear varchar,holiday varchar,workday varchar) return boolean is

  Result boolean;

  n_number number(1);--返回为周几 1为周日 。。。7为周六

begin


  if instr(holiday,to_char(to_date(dateOfYear,'yyyy-mm-dd'),'yyyy-mm-dd'),1,1) >0 then --如果当前日期在节假日中则返回true

  Result := true;

  else

   SELECT to_number(to_char(to_date(dateOfYear,'yyyy-mm-dd'),'D')) into n_number FROM DUAL; --查询当前日期是周几

   if(n_number !=1 and n_number != 7) then --如果当前日期不是周六和周日则返回false

   Result := false;

   else

     if instr(workday,to_char(to_date(dateOfYear,'yyyy-mm-dd'),'yyyy-mm-dd'),1,1) >0 then --如果当前日期在工作日中则返回false

     Result := false;

     else --如果当前日期不在工作日中则返回true

     Result := true;

     end if;

   end if;

  end if;

  


  return(Result);

end isHoliday;


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!