返回日期在未来范围内的记录

时间:2018-03-20 13:34:58

标签: sql oracle

我有以下查询: -

select actual_ssd
from tblsales

是否有可能提前2个月从tblsales actual_ssd动态返回记录?

因此,如果我今天运行查询,它将返回01/05/2018和31/05/2018之间的所有记录。如果我在04/04/2018运行它,它将返回01/06/2018和30/06/2018之间的所有记录。

2 个答案:

答案 0 :(得分:3)

当然可以

 select * 
 from tblsales
 where actual_ssd >= trunc(add_months(sysdate, 2), 'MM')
 and actual_ssd < trunc(add_months(sysdate, 3), 'MM')

trunc()对日期值执行舍入,具体取决于格式掩码;使用'MM'参数,它会向下舍入到当前月的第一个。 add_months()完全按照您的想法执行操作,将所需的月数添加到日期参数中。

答案 1 :(得分:1)

trunc与算术一起使用。

where actual_ssd >= trunc(sysdate,'mm')+interval '2' month 
and actual_ssd < trunc(sysdate,'mm')+interval '3' month