Sql 在WHERE子句条件中使用DATEDIFF
我在SQL中有这个查询Sql 在WHERE子句条件中使用DATEDIFF,sql,sql-server,Sql,Sql Server,我在SQL中有这个查询 WHERE DATEDIFF(DD,[fld_DateResolved],GETDATE()) > 3 我想做的是,在我的系统中3天后关闭票据,我的问题是,这是检查DateResolved和GetDate的DATEDIFF是否大于3的正确查询方式吗 感谢使其成为可论证的(这意味着如果存在,可以使用适当的索引): WHERE[fld_DateResolved]使其可参数化(这意味着如果存在适当的索引,则可以使用该索引): WHERE[fld_DateResolved
WHERE DATEDIFF(DD,[fld_DateResolved],GETDATE()) > 3
我想做的是,在我的系统中3天后关闭票据,我的问题是,这是检查DateResolved和GetDate的DATEDIFF是否大于3的正确查询方式吗
感谢使其成为可论证的(这意味着如果存在,可以使用适当的索引):
WHERE[fld_DateResolved]使其可参数化(这意味着如果存在适当的索引,则可以使用该索引):
WHERE[fld_DateResolved]现在它得到了3天后不应该关闭的票子。我想你打算DATEADD
在这里,而不是DATEDIFF
。混蛋!谢谢。!。。。更新。我正忙着和老板说话,分心了!:)谢谢,我想它成功了,我希望!但是我得到了我想要的结果,现在它得到了3天后不应该关闭的票。我想你是想在这里DATEADD
,而不是DATEDIFF
。混蛋!谢谢。!。。。更新。我正忙着和老板说话,分心了!:)谢谢,我想它成功了,我希望!但是我得到了我想要的结果,你的方法非常正确。超过3天还是超过72小时?如果是3天,我建议使用@MitchWheat的方法,并使用CAST(GETDATE()作为DATE)对其进行修改。没关系,只是现在你已经破坏了在列上使用索引的机会。这可能不是你想要的。是的,你的方法非常正确。超过3天还是超过72小时?如果是3天,我建议使用@MitchWheat的方法,并使用CAST(GETDATE()作为DATE)对其进行修改。没关系,只是现在你已经破坏了在列上使用索引的机会。这可能不是你想要的。
WHERE [fld_DateResolved] <= DATEADD(Day, -3, CAST(GETDATE() as Date))