日期:2014-05-20  浏览次数:20660 次

求大神解答mysql时间函数问题~真心很难
请问mysql中的时间函数DATE_ADD()的返回值是什么啊?
自己写了一个函数调用到DATE_ADD(),但返回值为(NULL)。
烦恼N久,求大神解救啊~~~~~~
CREATE DEFINER=`root`@`localhost` FUNCTION `allocateRooms`() RETURNS YEAR
BEGIN
        DECLARE d YEAR;
SELECT lesson_t.year INTO @year1 FROM lesson_t WHERE courNO = 1;
SELECT DATE_ADD(@year1,INTERVAL 3 YEAR) INTO d;
RETURN d;
    END$$

DELIMITER ;

PS:select d := DATE_ADD(@year1,INTERVAL 3 YEAR);
    set d:= DATE_ADD(@year1,INTERVAL 3 YEAR);
都试过了,但还是为空。
MySQL select 函数 时间函数

------解决方案--------------------
DATE_ADD(date,INTERVAL expr type)
第一个参数要为date类型。你确定lesson_t.year 为date类型吗?
且声明的参数也是date?
------解决方案--------------------
同问,别告诉我们 lesson_t.year 是2013这样的内容。
如果这样,也别脱裤子放屁了,直接 lesson_t.year + 3,否则日期型,或者符合日期格式的字符串都可以