begin
  sys.dbms_job.submit(job => :job,
                      what => 'BEGIN 
PK_SETTLE_INST.SP_START_ACC_JOB;
END;',
                      next_date => to_date('02-09-2009 15:55:00', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'trunc(sysdate+15/1440,''MI'')');
  commit;
end;
以上是调度任务的脚本,interval =‘'trunc(sysdate+15/1440,''MI'')’ 表示每隔15分钟执行一次,问题如下:
trunc(sysdate+15/1440,'MI') ;
trunc(sysdate+15/1440,'HH') ;
sysdate+15/1440 ;
这三种写法应该都是表示隔15分钟,在执行调度任务的时候,有什么区别的,我应该采用哪一种呢?

解决方案 »

  1.   

    SQL> select trunc(sysdate+15/1440,'HH') from dual;TRUNC(SYSDATE+15/1440,'HH')
    ---------------------------
    2008-10-20 16:00:00SQL> select trunc(sysdate+15/1440,'MI') from dual;TRUNC(SYSDATE+15/1440,'MI')
    ---------------------------
    2008-10-20 16:19:00
    SQL> select sysdate+15/1440 aaaaaaaaaaaaaaaaaaa from dual;AAAAAAAAAAAAAAAAAAA
    -------------------
    2008-10-20 16:21:10
    从这几个查询结果看出,你要选的是sysdate+15/1440;
      

  2.   


    SQL> select trunc(sysdate ,'dd') from dual ;TRUNC(SYSDATE,'DD')
    -------------------
    10/20/08SQL> select trunc(sysdate ,'yyyy') from dual ;TRUNC(SYSDATE,'YYYY')
    ---------------------
    1/1/08SQL> select trunc(sysdate ,'mm') from dual ;TRUNC(SYSDATE,'MM')
    -------------------
    10/1/08SQL> select trunc(sysdate ,'MI') from dual ;TRUNC(SYSDATE,'MI')
    -------------------
    10/20/08 16:08:00SQL> select trunc(sysdate ,'hh') from dual ;TRUNC(SYSDATE,'HH')
    -------------------
    10/20/08 16:00:00SQL> select sysdate+15/1440 from dual ;SYSDATE+15/1440
    ---------------
    10/20/08 16:23:TRUNC(DATE,[FORMAT])根据[FORMAT]来指定精确度,[MI]精确到分钟,[HH]精确到小时
      

  3.   

    楼上的能详细点吗,这个INTERVAL参数和NEXT_DATE有关联吗,比如我的NEXT_DATE 是trunc(sysdate+1)+4/24即从下一日的凌晨4点开始执行,每隔一天执行一次,这个情况下的INTERVAL :SYSDATE+1合适吗?正确的写法应该是怎么样的呢?