有没有办法将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
Run Code Online (Sandbox Code Playgroud)
我能想到的唯一方法是使用CASE语句检查参数的值,或者将SQL构建为字符串并在EXEC中运行它.
有没有人有任何"更好"的建议?该平台是MS SQL Server 2005