【发布时间】:2013-10-30 08:41:28
【问题描述】:
我已经用谷歌搜索了,但没有找到任何与我的情况相符的内容。
declare @from_ datetime, @to_ datetime
SET @from_ = '2013-01-01'
SET @to_ = '2013-10-01'
DECLARE @query NVARCHAR(4000)
SET @query = N'
DECLARE @from datetime, @to datetime
SET @from = CAST('''+@from_+''' AS datetime)
SET @to = CAST('''+@to_+''' AS datetime)
'
给出错误:
Msg 241, Level 16, State 1, Line 34
Conversion failed when converting date and/or time from character string.
SET @query = N' 是第 34 行
我也尝试过使用CONVERT(datetime, '+@from_+', 102) 和, 102) 和'''
只有
SET @from = CAST('+@from_+' AS datetime)
同样的结果
解决方案是 PIVOT 的一部分,所以我有声明、选择、透视和执行 @query。解决方案的其余部分运行良好,直到我开始使用日期时间。
【问题讨论】:
-
为什么要在@from_ 和@to_ 周围添加额外的引号?这可能是您的问题的原因。
-
它在哪里说“只有”......和“相同的结果”怎么样?
-
即使使用 and 和 just,你仍然在它周围添加额外的东西,比如 '+ 和 +' 所以这也不起作用。带下划线的变量声明为 varchar,不带下划线的变量声明为日期时间?查看 t-clausen.dk 的回答
标签: sql sql-server-2008