MySQL存储过程不起作用

时间:2014-11-09 14:04:29

标签: mysql stored-procedures

为什么此语句会返回NULL

DROP PROCEDURE IF EXISTS hr.Test;
CREATE PROCEDURE hr.`Test`
           (
             IN `empID` BIGINT(20)
           , IN untill date
           , IN `salaryType` INT(10)
           )
    MODIFIES SQL DATA
BEGIN
  select untill;
END;

call Test(2, '2014-01', 2);

这很奇怪,因为当我想要返回empIDsalaryType的值时,它会起作用!

2 个答案:

答案 0 :(得分:0)

由于'2014-01'不是日期,'2014-01-01'将是一个。您缺少日期的日期部分。

答案 1 :(得分:0)

原因很简单,因为'2014-01'是无效日期,因此会返回null。要证明尝试以下查询,它将返回null

select cast('2014-01' as date)