字符串转换日期错误

宝洁

我正在尝试做一个动态表,其中,列数取决于日期范围。因此,我正在尝试使用数据透视表。每次我运行查询时,都会出现以下错误:

Msg 241, Level 16, State 1, Line 18
Conversion failed when converting date and/or time from character string.

这是查询(MSSQL):

DECLARE @StartDate AS DATETIME  
DECLARE @EndDate AS DATETIME  
DECLARE @Query NVARCHAR(MAX)  
DECLARE @Str_Dates NVARCHAR(MAX)  

SET @StartDate = '2014-05-01'
SET @EndDate = '2014-05-16'

SELECT  @Str_Dates = STUFF(( SELECT DISTINCT
                    '],[' + CONVERT(VARCHAR(10),CreateDate,111)
                    FROM myDB.dbo.SaleTransaction
                    WHERE CreateDate BETWEEN @StartDate AND @EndDate
                    ORDER BY 1 
                    FOR XML PATH('')
                    ), 1, 2, '') 
                    + ']'

SET @Query = 
'SELECT * FROM
(
SELECT CreateDate AS [DATE], ItemID, Description, SUM(Quantity) AS [QTY]
FROM myDB.dbo.SaleTransactionDetails
WHERE CreateDate BETWEEN '+@StartDate+' AND '+@EndDate+'
GROUP BY CreateDate, ItemID, Description
) tpvt     
PIVOT (SUM(tpvt.QDE) FOR tpvt.DATE
IN ('+@Str_Dates+')) AS pvt'

EXECUTE (@Query)  

如果我删除WHERE CreateDate BETWEEN '+@StartDate+' AND '+@EndDate+'查询,运行不会出现问题。因此,我尝试CONVERT以多种方式使用函数将变量转换为日期,但是没有成功。
知道我该怎么做才能使用此变量并且没有该错误吗?

亚历克斯·K。

WHERE CreateDate BETWEEN '+@StartDate+'

您不能将字符串连接(+)为日期时间。

在动态SQL中将其转换为带引号的字符串:

'CreateDate BETWEEN ''' + CONVERT(VARCHAR(8), @StartDate, 112) + ''' AND ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

日期字符串转换错误月份

字符串转换为datetime返回错误的日期

将字符串转换为日历-日历日期错误

SQL从字符串错误到日期和/或时间的转换

将字符串转换为日期python strptime错误

从日期时间到字符串格式的转换错误

转换字符串日期

字符串转换错误

转换日期格式的字符串以用作字符串

将日期字符串转换为日期时间 Python 格式错误

Swift将字符串转换为日期输出错误的日期

日期格式器在转换为字符串Objective-C时给出错误的日期

字符串到日期的转换给出错误的日期

R中字符串到日期转换的“标准明确日期”错误

从具有潜在错误日期字符串的大型记录表从 nvarchar 转换为日期时间

如何避免错误消息241(从字符串转换日期和/或时间时转换失败)

如何解决该错误“从字符串转换日期和/或时间时转换失败”

从字符串转换日期和/或时间时转换失败[错误消失在顶部(xxxx)]

从字符串转换日期和/或时间时,PHP错误转换失败

从字符串转换日期时间时,错误消息转换失败

错误“从字符串转换日期和/或时间时转换失败”

SQL错误,从字符串转换日期和/或时间时转换失败

从字符串转换日期和/或时间时转换失败-SQL Server错误

SQL 错误:从字符串转换日期和/或时间时转换失败

转换日期时间?字符串

字符串日期到LocalDate的转换

从字符串转换的日期无效

javascript日期转换为字符串

BIGQUERY 日期时间字符串转换