这是我到目前为止所拥有的:
SELECT ListKey
FROM Closing_List
WHERE DATEPART(YEAR,closedate) > DATEPART(YEAR,GETDATE())-2)
但我想要 24 个月回来。
谢谢!
这是我到目前为止所拥有的:
SELECT ListKey
FROM Closing_List
WHERE DATEPART(YEAR,closedate) > DATEPART(YEAR,GETDATE())-2)
但我想要 24 个月回来。
谢谢!
SELECT ListKey
FROM Closing_List
WHERE closedate > DATEADD(MONTH, -24, GETDATE())
SELECT ListKey
FROM Closing_List
WHERE closedate > DATEADD(MONTH,-24,GETDATE())
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 月的记录。它不关心当前是一个月中的哪一天,或者关闭日期是否包含时间数据。