2012-12-20 72 views
0

在我的存儲過程,我想用這個代碼SQL Server 2008中的日期時間轉換錯誤?

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

這裏傳遞參數@enddate數據類型是varchar(12)@days數據類型是int@P5數據類型是varchar(20)

它顯示下面的錯誤

轉換日期和/或時間從字符串轉換失敗

對此有何意見?

在此先感謝

+2

你可以發佈你正在使用的參數值嗎? –

+0

rs,我正在通過@ p5 = 2012-12-12 @days無需通過,因爲它是動態過程 – sentil

+0

爲什麼你要使用左側(@ P5,4)+'20'+'返回'20122012' @ P5,2)? –

回答

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 

沒有發生錯誤。

你有建議這是更大的存儲過程的一部分。變量中的數據不是您認爲的那樣,或者錯誤在您的過程中的其他位置。

相關問題