jobs的scripts程序段如下
DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
( job => X
,what => 'MYCOM_USER.Proc_Report(SYSDATE -1);'
,next_date => to_date('17-03-2009 05:00:00','dd/mm/yyyy hh24:mi:ss')
,interval => 'TRUNC(SYSDATE+1)+5/24'
,no_parse => TRUE
);
END;
/问题: ,interval => 'TRUNC(SYSDATE+1)+5/24' 这一句是什么意思?我尤其不懂的是'TRUNC(SYSDATE+1)+5/24' 。请不吝赐教,谢谢!
DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
( job => X
,what => 'MYCOM_USER.Proc_Report(SYSDATE -1);'
,next_date => to_date('17-03-2009 05:00:00','dd/mm/yyyy hh24:mi:ss')
,interval => 'TRUNC(SYSDATE+1)+5/24'
,no_parse => TRUE
);
END;
/问题: ,interval => 'TRUNC(SYSDATE+1)+5/24' 这一句是什么意思?我尤其不懂的是'TRUNC(SYSDATE+1)+5/24' 。请不吝赐教,谢谢!
select 'TRUNC(SYSDATE+1)+5/24' from dual;
select TRUNC(SYSDATE+1)+5/24 from dual;
trunc的意思是只取日期
一种方法?还是一种精神。
这样的问题,在sql中执行一次就知道结果。
授人以鱼,不如授人以渔
1.TRUNC(date[,fmt])按指定格式截取日期
2.TRUNC(number[,decimals]) 这里的用法就和ROUND比较相似了。不加decimals就是取整。LZ的情况就是第二种用法,把sysdate的时间部分舍弃了,只取日期部分。可以比较下以下两句话的区别,相信能有直观的体会:
select TRUNC(SYSDATE+1)+5/24 from dual;
select (SYSDATE+1)+5/24 from dual;