我确实经历过类似的问题和他们对SO的回答,但这并没有帮助。 这是我的程序:
DELIMITER //
DROP PROCEDURE IF EXISTS test//
CREATE PROCEDURE test()
BEGIN
DECLARE intime TIME;
SET intime:=(SELECT intime FROM new_attendance WHERE empid='xxx' AND DATE(dt)='2013-08-02');
SELECT intime;
END //
DELIMITER ;
当我执行这行代码时,它会起作用并返回正确的值:
SELECT empid FROM new_attendance WHERE empid='xxx' AND DATE(dt)='2013-08-02'
但它在内部程序中无效。我感谢您的帮助。非常感谢提前!
答案 0 :(得分:3)
首先,MySQL中的变量赋值采用=
语法,而不是:=
语法。
编辑:打击上述内容,似乎毕竟支持这两种语法......
其次,完全消除intime
变量并执行
DELIMITER //
DROP PROCEDURE IF EXISTS test//
CREATE PROCEDURE test()
BEGIN
SELECT intime FROM new_attendance WHERE empid='xxx' AND DATE(dt)='2013-08-02';
END //
DELIMITER ;