Plsql Oracle 12c:以日期间隔运行计划作业

Plsql Oracle 12c:以日期间隔运行计划作业,plsql,oracle12c,intervals,toad,dbms-scheduler,Plsql,Oracle12c,Intervals,Toad,Dbms Scheduler,我有以下脚本: SELECT USERNAME ITEM BUSINESS ADDED FROM BUSINESS WHERE BUSINESS IN ('X','Y','Z') AND ADDED BETWEEN TO_DATE('8/30/2019 00:00:00', 'MM/DD/YYYY HH24:MI:SS') AND TO_DATE('9/30/2019 11:59:59', 'MM/DD/YYYY HH24:MI:SS') 日期间隔是正确的,但我希望在每次计划作业之后更改日

我有以下脚本:

SELECT 
USERNAME
ITEM
BUSINESS
ADDED
FROM BUSINESS
WHERE 
BUSINESS IN ('X','Y','Z')
AND ADDED BETWEEN TO_DATE('8/30/2019 00:00:00', 'MM/DD/YYYY HH24:MI:SS') AND TO_DATE('9/30/2019 11:59:59', 'MM/DD/YYYY HH24:MI:SS')
日期间隔是正确的,但我希望在每次计划作业之后更改日期。计划的作业脚本如下所示:

SYS.DMBS_SCHEDULER.CREATE_JOB
     (
          job_name => 'test'
         ,start_date => TO_TIMESTAMP_TZ('2019/10/23 09:00:00.000000 US/Eastern', 'yyyy/mm/dd hh24:mi:ss.ff tzr')
         ,repeat_interval => 'FREQ=MONTHLY' INTERVAL=1'
         ,end_date => NULL
等等等等


我相信我只需要更改脚本中的日期格式,但如何确保脚本日期在每次计划作业运行后向前移动1个月?提前谢谢。

我对你的标准并不完全肯定:

TO_DATE('8/30/2019 00:00:00', 'MM/DD/YYYY HH24:MI:SS') AND TO_DATE('9/30/2019 11:59:59', 'MM/DD/YYYY HH24:MI:SS')
因为这可能是“永远是30号”,这意味着2月的问题,也可能意味着“前一个月的所有问题”。我将假设后者,在这种情况下,您不需要硬编码日期,您可以通过操纵sysdate来实现这一点,即

ADDED >= add_Months(trunc(sysdate,'MM'),-1) AND
ADDED < trunc(sysdate,'MM')
ADDED>=添加月份(trunc(sysdate,'MM'),-1)和
添加了