我有以下SQL不起作用:
declare @id INT;
set @id=0;
exec insert_mail @id OUTPUT, 'ZLgeOZlqRGC6l57TyD/xYQ==', 4928, '2010\01\14\14\03131_2.eml', 'Suz, Katie and Kourtney''s Housewarming Party', CONVERT(DATETIME, '2015-01-18 14:03:13', 120);
select @id;
并以这种方式更改它修复它:
declare @id INT;
set @id=0;
declare @p_valid_until datetime;
set @p_valid_until=CONVERT(DATETIME, '2015-01-18 14:03:13', 120)
exec insert_mail @id OUTPUT, 'ZLgeOZlqRGC6l57TyD/xYQ==', 4928, '2010\01\14\14\03131_2.eml', 'Suz, Katie and Kourtney''s Housewarming Party', @p_valid_until;
select @id;
任何人都可以解释一下吗?
干杯, 扬
答案 0 :(得分:9)
您无法在传递参数时调用函数。这些参数值应该是常量或参数。
答案 1 :(得分:2)
您不能将函数等传递给存储过程,只传递变量或常量值......
答案 2 :(得分:-2)
在第一种情况下,您在执行命令中调用CONVERT函数,这是不允许的。你不能在传递参数
时调用函数EXECUTE insert_mail ... CONVERT(DATETIME, '2015-01-18 14:03:13', 120)
我没有看到使用转换功能的意义。只需输入日期而不转换。