CREATE OR REPLACE FUNCTION SF_ZS_GETCOMPAREDATE2(LV_QSRQ00 char,LV_JSRQ00 char) return number is V_RETURN number(8); V_QSDATE date; V_JSDATE date; V_ZWRQ00 varchar2(50); V_COUNT0 number(3); V_COUNT1 number(3); begin -- MODIFICATION HISTORY -- Person Date Comments -- wuzy 2018.01.19 归档 CREATE for ZYDZBL-20171225-004 -- -------- --------------- --------------------------------------------------- V_RETURN:=-1; select to_date(LV_QSRQ00,'yyyy-MM-dd') into V_QSDATE from dual; select to_date(LV_JSRQ00,'yyyy-MM-dd') into V_JSDATE from dual; while V_QSDATE<=V_JSDATE loop --周六、周日全天 为节假日,其他为正常工作日。 select to_char(V_QSDATE,'day') into V_ZWRQ00 from dual; select count(1) into V_COUNT0 from BM_TYZD00 where ZDMC00='节假日信息维护' and MC0000=to_char(V_QSDATE,'YYYYMMDD') ; select count(1) into V_COUNT1 from BM_TYZD00 where ZDMC00='节假日转工作日信息维护' and MC0000=to_char(V_QSDATE,'YYYYMMDD') ; if V_COUNT0<=0 and ((V_ZWRQ00 <>'星期日'and V_ZWRQ00 <> '星期六') or V_COUNT1> 0) then V_RETURN:= V_RETURN + 1; end if; V_QSDATE:= V_QSDATE + 1; end loop ; return V_RETURN; end;