【发布时间】:2013-07-11 19:26:25
【问题描述】:
我目前正在尝试将此查询放入 Visual Studio
DECLARE @StartDate date
SELECT @StartDate = GETDATE();
WITH cte AS
(
SELECT -1 AS idx, DATEADD(d,-1,@StartDate) AS idxDate
UNION ALL
SELECT idx -1, DATEADD(d,-1,idxDate)
FROM cte
WHERE idx >-365
)
SELECT idx DateValue, CONVERT(VARCHAR (11),idxDate,109) + ', ' + CAST
(idx as nvarchar(max)) DateLabel
FROM CTE
OPTION (MAXRECURSION 0)
但是我得到这个错误说
nvarchar is invalid for argument 2 of dateadd function
这里有什么问题吗?
【问题讨论】:
-
您使用的是什么版本的 SQL Server?
-
Microsoft SQL 和 Visual Studio 2008 R2
-
你可以试试改成
DATEADD(d,Convert(Int, -1),@StartDate)吗?参考:stackoverflow.com/a/10376679/1768890 -
您的查询工作正常SQL Fiddle。一定有其他东西给你这个错误。
-
如果我们知道您的总体目标是什么,然后您将上述内容描述为“这就是我目前所拥有的”,我们可能会做得更好。看起来您正在做某事,其日期(忽略闰年)一直持续到昨天,但我不知道您打算如何处理这些日期。
标签: sql-server visual-studio tsql sql-server-2008-r2