Sql server 2008 SQL Server 2008中的日期-时间转换错误?
在我的存储过程中,我试图用这段代码传递参数Sql server 2008 SQL Server 2008中的日期-时间转换错误?,sql-server-2008,tsql,Sql Server 2008,Tsql,在我的存储过程中,我试图用这段代码传递参数 select @enddate = CONVERT(varchar, @days) + '-' + left(@P5, 4) + '20' + right(@P5, 2) 这里的@enddate数据类型是varchar(12)和@days数据类型是int和@P5数据类型是varchar(20) 它显示以下错误 从字符串转换日期和/或时间时转换失败 有什么想法吗 提前感谢您尝试测试此代码,我没有触发您看到的相同错误 DECLARE @enddate A
select @enddate = CONVERT(varchar, @days) + '-' + left(@P5, 4) + '20' + right(@P5, 2)
这里的@enddate
数据类型是varchar(12)
和@days
数据类型是int
和@P5
数据类型是varchar(20)
它显示以下错误
从字符串转换日期和/或时间时转换失败
有什么想法吗
提前感谢您尝试测试此代码,我没有触发您看到的相同错误
DECLARE @enddate AS VARCHAR(12) ,
@days AS INT ,
@P5 AS VARCHAR(20);
SELECT @days = 5 ,
@p5 = '2012-12-12';
SELECT @enddate = CONVERT(VARCHAR, @days) + '-' + LEFT(@P5, 4) + '20' + RIGHT(@P5, 2);
PRINT @enddate;
产生结果
5-20122012
没有错误
您建议这是一个更大的存储过程的一部分。变量中的数据不是您认为的那样,或者错误在您的过程中的其他地方。您可以发布您正在使用的参数值吗?rs,我正在传递@p5=2012-12-12@days无需传递,因为它是动态过程。您为什么试图使用左(@p5,4)+'20'+右(@p5,2)返回
20122012
?您目前已接受0%的问题答案。请检查您的旧问题,并考虑哪一个答案是最有用的。@代码中的某处,您使用的是代码>转换(日期,@ EnDATE)<代码>或“代码>转换(DATETIME,@ EDATEDATE)< /代码>?