在WHERE子句条件中使用DATEDIFF

use*_*418 1 sql sql-server

我在SQL中有这个查询

WHERE DATEDIFF(DD,[fld_DateResolved],GETDATE()) > 3
Run Code Online (Sandbox Code Playgroud)

我想要做的是,在我的系统中3天后关闭门票,我的问题是,这是查询以检查DateResolved和GetDate的DATEDIFF是否大于3的正确方法吗?

谢谢

Mit*_*eat 8

使它成为可能的(这意味着如果存在,可以使用适当的索引):

WHERE [fld_DateResolved] <= DATEADD(Day, -3, CAST(GETDATE() as Date))
Run Code Online (Sandbox Code Playgroud)

[更新:添加了一个演员Date,假设您使用的是SQL Server 2008+]