Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 SQL Server 2008中的日期-时间转换错误?_Sql Server 2008_Tsql - Fatal编程技术网

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)< /代码>?