CREATE OR REPLACE
FUNCTION "TIMEJUDGE" (date1 varchar,date2 varchar,mytype number,hour number,minust number) RETURN number is
--date1 搜索时间(当前时间) ,
--date2 时间段 ,mytype 时间类型1表示时间格式(##0800#2359##) 2表示日期格式 (##20131015#20131022##),
--hour 重点式时长 ,minust 最晚到店时间
time1 number;--起始时间(时间格式)
time2 number;--结束时间(时间格式)
time3 number;--搜索时间(当前时间)
date3 varchar(20);--开始时间
date4 varchar(20);--结束时间
re number;
re1 number;
re2 number;
re3 number;
n number;
BEGIN
--时间格式(##0800#2359##)
if mytype=2 then
date3:=substr(TO_CHAR(SYSDATE(),'yyyyMMddHH24MI'),0,8)||substr(date2,3,4);
date4:=substr(TO_CHAR(SYSDATE(),'yyyyMMddHH24MI'),0,8)||substr(date2,8,4);
--日期格式 (##20131015#20131022##)
elsif mytype=1 then
date3:=substr(date2,3,8);--开始时间
date4:=substr(date2,12,8);--结束时间
end if;
-- dbms_output.put_line(date3);
--dbms_output.put_line(date4);
-- dbms_output.put_line(date1);
time1:=to_number(date3);--开始时间
time2:=to_number(date4);--结束时间
time3:=to_number(date1);--搜索时间
n:=0;
--时间格式(##0800#2359##)
if mytype=2 then
--时间相差分钟数(时间加30分钟)
-- -minust
-- re:=(time3-time1)-minust;
-- re1:=(time2-time3)+minust;
--时间加hour个小时
re2:=(time3-time1)-(hour*60);
re3:=(time2-time3)+(hour*60);
-- if re>-1 and re1>-1 and re3>-1 and re2>-1 then
if re3>-1 and re2>-1 then
n:=1;
end if;
--时间格式(##0800#2359##)
elsif mytype=1 then
--时间相差分钟数
re:=time3-time1;
re1:=time2-time3;
--打印语句
if re>-1 and re1>-1 then
n:=1;
end if;
end if;
RETURN n;
END;
orcle 函数列子
最新推荐文章于 2022-05-18 16:34:42 发布