这是我到目前为止所做的:
SELECT ListKey
FROM Closing_List
WHERE DATEPART(YEAR,closedate) > DATEPART(YEAR,GETDATE())-2)
但我想要24个月回来。
谢谢!
答案 0 :(得分:2)
SELECT ListKey
FROM Closing_List
WHERE closedate > DATEADD(MONTH, -24, GETDATE())
答案 1 :(得分:2)
SELECT ListKey
FROM Closing_List
WHERE closedate > DATEADD(MONTH,-24,GETDATE())
答案 2 :(得分:0)
使用DATEADD
只要你知道它对日期做了什么就可以了。
GetDate()
返回当前日期和时间。现在对我来说是08/30/2013 02:18:14pm
通过DATEADD(MONTH,-24,GETDATE())
传递08/30/2011 02:18:14pm'
因此,如果我使用该信息运行您的查询,它将以大于(不等于)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月的所有记录。它不关心当前的当天是哪一天,或者关闭日期是否包括时间数据