1

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

但它在程序内部不起作用。我感谢您的帮助。提前非常感谢!

4

1 回答 1

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 ;
于 2013-09-30T06:53:57.437 回答