相关疑难解决方法(0)

使用DateDiff时的SQL动态DatePart

有没有办法将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

sql t-sql sql-server datetime sql-server-2005

21
推荐指数
2
解决办法
2万
查看次数

标签 统计

datetime ×1

sql ×1

sql-server ×1

sql-server-2005 ×1

t-sql ×1