2013-10-31 193 views
4

語法錯誤我最近寫了這些參數的存儲過程:與SQL Server存儲過程

@dFromDT DATE, 
@dToDT DATE, 
@sErrorMessage NVARCHAR(MAX), 
@sPartCustom INT, 
@sPartCustomFilter NVARCHAR(254), 
@nIncludeMessage INT 

我試圖打電話與行的過程:

EXEC _MG_ERPPartFilter(CONVERT(datetime, '2013-01-01T00:00:00', 126), CONVERT(datetime, '2050-12-31T00:00:00', 126), '',5, '556', 0) 

,我總是得到的是錯誤信息:

Incorrect syntax near the keyword 'CONVERT'.

即使當我寫這行:

EXEC _MG_ERPPartFilter('2013-01-01','2050-12-31', '',5, '556', 0) 

我得到這個錯誤:

Incorrect syntax near '2013-01-01'.

所有的名字是正確的。

有人可以幫助我嗎?

+2

你不能在表達式'EXEC'命令 - 您只需要文字值或SQL Server變量。使用SQL Server變量來保存'CONVERT'的結果,然後在'EXEC'調用中使用該變量... –

回答

4

不要在你的第二個例子中使用括號:

EXEC _MG_ERPPartFilter '2013-01-01','2050-12-31', '',5, '556', 0 

,並在第一,你必須值轉換爲臨時變量,並將它們傳遞給exec命令:

declare @date1 datetime, @date2 datetime 

set @date1 = CONVERT(datetime, '2013-01-01T00:00:00', 126) 
set @date2 = CONVERT(datetime, '2050-12-31T00:00:00', 126) 

EXEC _MG_ERPPartFilter @date1, @date2, '',5, '556', 0