使用DateDiff时的SQL Dynamic DatePart
发布时间:2020-12-12 16:43:03 所属栏目:MsSql教程 来源:网络整理
导读:有没有办法将DateDiff的DatePart参数作为变量传递? 所以我可以编写类似这样的代码? DECLARE @datePart VARCHAR(2)DECLARE @dateParameter INTSELECT @datePart = 'dd'SELECT @dateParameter = 28SELECT *FROM MyTableWHERE DATEDIFF(@datePart,MyTable.MyDa
有没有办法将DateDiff的DatePart参数作为变量传递?
所以我可以编写类似这样的代码? DECLARE @datePart VARCHAR(2) DECLARE @dateParameter INT SELECT @datePart = 'dd' SELECT @dateParameter = 28 SELECT * FROM MyTable WHERE DATEDIFF(@datePart,MyTable.MyDate,GETDATE()) < @dateParameter 我可以想到这样做的唯一方法是使用CASE语句检查参数的值,或者通过将SQL作为字符串构建并在EXEC中运行. 有没有人有任何“更好的”建议?该平台是MS SQL Server 2005 解决方法根据SQL Server 2005的 DATEDIFF(参数部分)上的BOL条目,
所以你可能会坚持使用动态SQL或使用CASE语句.但是我会选择一个CASE版本而不是动态SQL. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |