Есть ли способ передать параметр DatePart DateDiff в качестве переменной? Так что я могу написать код, похожий на этот?
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