oracle节假日判断

时间:2022-10-06 15:28:11 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

CREATE OR REPLACE FUNCTION fun_is_holi_day (dat in Date)

RETURN varchar2 --判断是否是工作日 0 工作日 1 休息日

AS

sig_n varchar2(1);

tmp NUMBER;

begin

/*

建立张

CREATE TABLE "SYS_DAY"

(

"DAY_ID" VARCHAR2(32) DEFAULT SYS_GUID() NOT NULL ENABLE,

"DAY_DATE" DATE NOT NULL ENABLE,

"DAY_TYPE" CHAR(1) NOT NULL ENABLE

) ;

COMMENT ON COLUMN "SYS_DAY"."DAY_ID" IS '工作日主键';

COMMENT ON COLUMN "SYS_DAY"."DAY_DATE" IS '日期';

COMMENT ON COLUMN "SYS_DAY"."DAY_TYPE" IS '日期类型 0 工作日休息 1节假日上班';

COMMENT ON TABLE "SYS_DAY" IS '工作日表,本表记录2种日期,第一种是正常工作日休息,第二种是节假日上班';

select to_char(to_date('2015-04-04','yyyy-mm-dd'),'DAY') from dual

union

select to_char(to_date('2015-04-04','yyyy-mm-dd'),'D') from dual

*/

select to_char(dat,'D') into tmp from dual;

if tmp = 7 or tmp = 1 then --判断是否是 星期六[7]和星期天[1]

--在系统节假日配置中判断是否是节假日

--日期类型 0 工作日休息 1节假日上班

select count(1) into tmp from SYS_DAY t where t.day_date=dat and t.day_type='1';

if tmp > 0 then

sig_n:='0';

else

sig_n:='1';

end if;

else

--在系统节假日配置中判断是否是节假日

--日期类型 0 工作日休息 1节假日上班

select count(1) into tmp from SYS_DAY t where t.day_date=dat and t.day_type='0';

if tmp > 0 then

sig_n:='1';

else

sig_n:='0';

end if;

end if;

return sig_n;

end fun_is_holi_day;

本文来源:https://www.wddqw.com/doc/869de3be0c22590103029d1f.html