gpt4 book ai didi

使用 DateDiff 时的 SQL 动态 DatePart

转载 作者:行者123 更新时间:2023-12-02 01:13:43 24 4
gpt4 key购买 nike

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

最佳答案

根据 DATEDIFF 上的 BOL 条目(参数部分)对于 SQL Server 2005,

These dateparts and abbreviations cannot be supplied as a user-declared variable.

因此,您可能会陷入动态 SQL 或使用 CASE 语句的困境。但我会选择 CASE 版本而不是动态 SQL。

关于使用 DateDiff 时的 SQL 动态 DatePart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/834971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com