如何按月自动恢复



我想要得到实际月份,月份-1,月份-2。和当前月份但少1年

例如,我在my where中这样做:


where  extract(year from date) = 2021 or
extract(month from date) = 06
orextract(month from date) = 07
orextract(month from date) = 08
or  (extract(year from date) = 2020 and
and extract(month from date) = 08)

但是我想知道如何自动更改,这样我就不需要每个月都自己更改了。

感谢

所以-似乎您希望在where子句中按日期过滤行。(当然,"日期"。是保留关键字,因此您的列不能被称为"日期";我假设它被称为date_,并带有下划线。)

可以这样做:

where date_ >= add_months(trunc(sysdate, 'mm'), -14)
and
date_ <  add_months(trunc(sysdate, 'mm'), -11)

trunc(sysdate, 'mm')将当前日期截断到月初。Add -14个月从2021年8月1日回调到2020年6月1日(提前14个月)。在2020年9月1日之前增加11个月的变动;您需要的数据严格在2020年9月1日之前。

您可以将日期筛选为:

  • 下个月初前及本月月初前两个月或两个月后;或
  • 11个月前的月初之前和等于或等于12个月前的月初之后。

如果您在2021年8月运行,那么您将获得所有日期:2021年6月,7月和8月以及2020年8月。

:

WHERE (   date_column <  ADD_MONTHS(TRUNC(SYSDATE, 'MM'),  1)
AND date_column >= ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -2) )
OR    (   date_column <  ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -11)
AND date_column >= ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -12) )

相关内容

  • 没有找到相关文章

最新更新