T-SQLselect30天范围内的日期

T-SQL select date withing 30 days range

我想select所有日期在 30 天之间的行从今天开始,

所以在 22-04-2022 到 22-05-2022 之间,

我试过了

SELECT DATEXP, ID FROM TABLE
where DATEXP > cast(getdate() + 30 as date) and DATEXP <= cast(getdate() as date)

但这好像不行

你应该在这里使用DATEADD()函数:

SELECT DATEXP, ID
FROM yourTable
WHERE DATEXP >= GETDATE() AND DATEXP < DATEADD(day, 30, GETDATE());

另请注意,您的不等式不正确。您应该在左侧 GTE 比较中具有较早的日期,在右侧 LT 比较中具有较晚的日期。

您的条件似乎有误,您期望的日期是 >= Today + 30 天,但比今天少。

因此,例如。

今天是22 April 2022

今天 + 30 = 22 May 2022

如果我有一个约会 DATEXP 23 May 2022,它不能同时是 >= 22 May 2022 和 LESS 然后 22 April 2022

也许您希望条件为 >= Today AND < Today + 30