SQL Server存储过程出现语法错误

SQL Server存储过程出现语法错误,sql,sql-server,stored-procedures,syntax,Sql,Sql Server,Stored Procedures,Syntax,我最近用这些参数编写了一个存储过程: @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(dat

我最近用这些参数编写了一个存储过程:

@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)
我总是收到这样的错误信息:

关键字“CONVERT”附近的语法不正确

即使我写这行:

EXEC _MG_ERPPartFilter('2013-01-01','2050-12-31', '',5, '556', 0)
我得到了这个错误:

“2013-01-01”附近的语法不正确

所有的名字都是正确的


有人能帮我吗?

不要在第二个示例中使用括号:

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

EXEC
命令中不能有表达式-您只需要有文字值或SQL Server变量。使用SQL Server变量保存
CONVERT
的结果,然后在
EXEC
调用中使用该变量。。。