我正在尝试在查询中使用SQL的DateAdd函数。问题是,当我使用参数设置第二个论点时,使用数字参数时会出现错误,该错误将表示如下内容:



如果我无参数地输入它,即对Int进行硬编码,则它可以正常工作。

这有效:

SELECT     FieldOne, DateField
FROM         Table
WHERE     (DateField> DATEADD(day, -10, GETDATE()))

虽然这不能:
SELECT     FieldOne, DateField
FROM         Table
WHERE     (DateField> DATEADD(day, @days, GETDATE()))

@days = -10

有什么想法让我做错了吗?顺便说一句,我正在SQL Server Manager中设置此变量,因为我正在尝试找出DataAccess代码中的错误。不知道这是否有所作为。

谢谢

最佳答案

听起来您正在将小数作为第3个参数而不是第2个参数传递给DATEADD(),例如:

DATEADD(day, GETDATE(), @days)

虽然问题中的代码段看起来不错。

(为更加清楚起见,上面的代码段是一个错误。这是将从问题中产生错误的代码。)

关于sql-server - 在查询的DATEADD函数中使用参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1783312/

10-11 02:47