将结果限制为仅下个月的日期

时间:2019-10-09 15:47:24

标签: sql oracle date where-clause

我要编写的代码是“如果审查日期在下个月,请给我。”

Select id, review_date
from Table
Where (review date is in any part of the next month next month)?

我尝试过:

where CAST("Revw_Dt" AS date) = ADD_MONTHS(Current_Date, 1) 

,但这仅将下个月的审核日期=返回今天。 如果下个月在任何地方,我都需要它。

3 个答案:

答案 0 :(得分:1)

请考虑以下方法,该方法将愉快地使用date列上的现有索引:

SELECT id, review_date 
FROM mytable 
WHERE 
    review_date >= ADD_MONTH(TRUNC(SYSDATE, 'month'), 1)
    AND review_date < ADD_MONTH(TRUNC(SYSDATE, 'month'), 2)

答案 1 :(得分:0)

只需将审核日期的月份组成部分与下个月的日期进行比较:

SELECT *
FROM yourTable
WHERE EXTRACT(MONTH FROM Revw_Dt) = EXTRACT(MONTH FROM ADD_MONTHS(CURRENT_DATE, 1));

答案 2 :(得分:0)

您需要结合使用add_monthstrunc函数。

Select * from your_table
Where trunc(Revw_Dt, 'month') = trunc(add_months(current_date,1),'month');

干杯!