我想将查询的值分配给MySql存储过程中的日期时间变量。
我正在尝试这个 -
DECLARE myDate DATETIME;
SET myDate = (SELECT date1 FROM myTable WHERE Id = var_myId);
这个
DECLARE myDate DATETIME;
SELECT date1 into myDate FROM myTable WHERE Id = var_myId;
两者似乎都不起作用,因为在运行proc后我没有得到所需的结果。
问题在于此声明 -
initial_Date DATETIME; -- param1
interval INTEGER; -- param2
SET var_date2 = DATE_ADD(initial_Date , INTERVAL interval MINUTE);
当我选择var_date2
时,我的结果为空。
答案 0 :(得分:0)
我发现存储过程存在两个问题。
首先,您使用sql关键字interval
命名变量。您应该使用不是sql关键字的单词重命名。
另一个是你没有设置输出变量。您可以看到the MySQL tutorials on stored procedure.
您可以使用并尝试以下代码:
delimiter //
create procedure test(in initial_time datetime, in minuteInterval integer(2),
out final_time datetime)
begin
set final_time = date_add(initial_time, interval minuteInterval minute);
end//
delimiter ;
对于测试,您可以尝试:
call test(now(), 60, @final_time);
select @final_time;