0

这是我到目前为止所拥有的:

SELECT ListKey
FROM Closing_List
WHERE DATEPART(YEAR,closedate) > DATEPART(YEAR,GETDATE())-2)

但我想要 24 个月回来。

谢谢!

4

3 回答 3

3
SELECT ListKey
FROM Closing_List
WHERE closedate > DATEADD(MONTH, -24, GETDATE())
于 2013-08-30T17:07:10.717 回答
2
SELECT ListKey
FROM Closing_List
WHERE closedate > DATEADD(MONTH,-24,GETDATE())
于 2013-08-30T17:27:31.247 回答
0

DATEADD只要您知道日期在做什么,使用就可以了。

GetDate()返回当前日期和时间。现在对我来说就是08/30/2013 02:18:14pm

通过DATEADD(MONTH,-24,GETDATE())收益率传递08/30/2011 02:18:14pm'

因此,如果我使用该信息运行您的查询,它将给我所有的结果,其封闭式大于 (not equal to) 08/30/2011 02:18:14pm。有几件事需要考虑。

一方面,如果您的记录在 2011 年 8 月 30 日下午 1:00 关闭,那么它们将不会包含在您的结果中。此外,如果您的关闭日期根本没有时间,那么您将不会获得2011 年 8 月 30 日以来的任何记录。

另请注意,如果您在 2013 年 9 月 2 日运行该查询,那么它将不包括 2011 年 9 月 1 日的记录。这可能是也可能不是问题,具体取决于您的需求。

另一种解决方案可能是:

SELECT ListKey
FROM Closing_List
WHERE closedate >= dateadd(month,datediff(month,0,getdate())-24,0)

如果您在 2013 年 9 月的任何时间运行上述程序,它将包括所有关闭日期从 2011 年 9 月到 2013 年 9 月的记录。它不关心当前是一个月中的哪一天,或者关闭日期是否包含时间数据。

于 2013-08-30T18:31:16.760 回答