在Oracle Sql中从当前月份获取前3个月的日期

lqfhib0f  于 2023-05-28  发布在  Oracle
关注(0)|答案(1)|浏览(359)

我得到了一个Oracle SQL代码,我想要的日期。

select abc,eff_dt 
from xyz 
where eff_dt between 'a' and 'b'

我期待着从前3个月的日期。
1.例如,如果当前日期是5/26/2023,那么我希望a=02/01/2023,B=04/30/2023。
1.例如,如果当前日期是6/01/2023,那么我希望a=03/01/2023,B=05/31/2023。

8ftvxx2r

8ftvxx2r1#

您可以将当前日期截断为该月的第一天,然后使用间隔算法。也许你想使用半开放间隔,而不是计算一个月的最后一天(这通常更安全,特别是如果你的日期有时间部分):

where eff_dt >= trunc(sysdate, 'mon') - interval '3' month
  and eff_dt <  trunc(sysdate, 'mon')

当然,这假设eff_dt是类似date的数据类型。

相关问题