MySQL存储过程返回null

时间:2013-09-30 06:47:37

标签: mysql procedure

我确实经历过类似的问题和他们对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'

但它在内部程序中无效。我感谢您的帮助。非常感谢提前!

1 个答案:

答案 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 ;