上个月的SQL固定日期

时间:2017-11-10 21:52:35

标签: sql oracle date

我希望每月运行一份报告来提取由特定任务开启日期驱动的数据。

关键字段是' progdate' (其中包含日期' dd / mm / yyyy')。

提取物很可能在本月的最后一周运行,为了本例的目的,我说的是第25个(如果是周末或银行假日,它将在下一个工作日)。

当代码运行时,它需要带回所有' progdate'从两个月前和当月24日的月25日开始返回。 (这两个日期将是固定的,并且从一个月到下一个月不会发生变化,因此将始终涵盖完全相同的时间段)。

即。如果我在10月25日运行它,它将从8月25日到9月24日返回数据。如果我在11月25日运行它,它会返回9月25日到10月24日的数据......依此类推。

我试过了;

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="greenCircle"></div>

现在这种工作......如果代码不是在每个月的同一天运行,那么它就会失效。如果是假期或周末,它可能错过一两天的数据(或导致从一次提取到另一次提取的重复)。

关于如何在不使用Sysdate和编码的情况下完成任务,特别是在两个月前的25个月到上个月的第24个月?

非常感谢! :)

1 个答案:

答案 0 :(得分:0)

你可以试试这个。

BETWEEN  TRUNC(ADD_MONTHS(SYSDATE ,- 2), 'MONTH') + 24  
AND TRUNC(ADD_MONTHS(SYSDATE ,- 1), 'MONTH') + 23
  

如何在不使用Sysdate

的情况下完成任务

如果您的表/架构中有一个包含运行查询的日历日期或营业日期信息,则可以使用。