我有一个如下存储过程:
ALTER procedure [dbo].[test_stored_procedure]
@id nvarchar(20),
@datefm datetime,
@dateto datetime
as
...
end
然后我尝试使用下面的SQL调用上面的存储过程:
exec test_stored_procedure @searchKey, cast('1900-01-01 00:00:00' as datetime), cast('1900-01-01 00:00:00' as datetime)
但执行时,我收到以下错误:
Incorrect syntax near '1900-01-01 00:00:00'.
如何解决这个问题?
答案 0 :(得分:6)
您需要使用:
DECLARE
@date_start DATETIME = '1900-01-01 00:00:00'
,@date_stop DATETIME = '1900-01-01 00:00:00';
EXEC test_stored_procedure @searchKey, @date_start, @date_stop;
或者:
EXEC test_stored_procedure @searchKey, '1900-01-01 00:00:00', '1901-01-01 00:00:00';
这是因为您无法使用EXEC
的参数功能,请参阅doc。你只能通过:
[[@parameter =] {value | @variable [OUTPUT] | [默认]