0

在我的存储过程中,我正在尝试使用此代码传递参数

select @enddate = CONVERT(varchar, @days) + '-' + left(@P5, 4) + '20' + right(@P5, 2)

这里@enddate数据类型是varchar(12)@days数据类型是int@P5数据类型是varchar(20)

它显示以下错误

从字符串转换日期和/或时间时转换失败

对此有什么想法吗?

提前致谢

4

1 回答 1

0

在尝试测试此代码时,我没有设法触发您看到的相同错误。

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

没有错误。

您建议这是一个更大的存储过程的一部分。变量中的数据不是您认为的那样,或者错误在您的程序中的其他地方。

于 2012-12-20T15:40:54.227 回答