sql查询显示下4个月

时间:2016-07-20 13:34:18

标签: sql sql-server

我想从sql server

打印下四个月的数据
column_name
2016-10-31
2016-07-31
2016-08-31
2016-09-30
2017-10-31
2015-07-31
2019-08-31
2017-09-30
2016-11-30

我想像这样输出

2016-10-31
2016-08-31
2016-09-30
2016-11-30

当前查询:

SELECT relieve_date 
FROM table 
WHERE DATEPART(m, relieve_date) = DATEPART(m, DATEADD(m, +4, getdate())) AND DATEPART(yyyy, relieve_date) = DATEPART(yyyy, DATEADD(m, -1, getdate()))

1 个答案:

答案 0 :(得分:0)

您的查询已结束,但需要一个范围(<=>=)而不是=。如果您使用DATEADD

,您也不会需要年份部分
SELECT relieve_date 
FROM   table 
WHERE  relieve_date >= DATEADD(month, 1, getdate())
AND    relieve_date <= DATEADD(month, 4, getdate())

另一个选项是BETWEEN,它也使用(<=>=)逻辑:

SELECT relieve_date 
FROM   table 
WHERE  relieve_date BETWEEN DATEADD(month, 1, getdate()) AND DATEADD(month, 4, getdate())