mysql存储过程日期不递增,循环不终止

gzszwxb4  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(372)

我想在表中插入一个日期时间序列。时间应该增加15分钟,所以我得到,例如
1/1/2019 00:00
1/1/2019 00:15
1/1/2019 00:30
1/1/2019 01:00
但我得到的是
1/1/2019 00:00
1/1/2019 00:00
1/1/2019 00:00
1/1/2019 00:00
这是一个非常简单的循环,我看不出我在这里遗漏了什么。
代码来自另一个帖子。
谢谢,
特里

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `FillCalendar`(IN `start_date` DATE, IN `end_date` DATE)

BEGIN
    DECLARE crt_date DATE;
    SET crt_date = start_date;
    WHILE crt_date <= end_date DO
        INSERT IGNORE INTO Schedule(StartTime) VALUES(crt_date);
        SET crt_date = ADDDATE(crt_date, INTERVAL 15 MINUTE);
    END WHILE;
    END$$
DELIMITER ;
t30tvxxf

t30tvxxf1#

您需要将变量声明为 DATETIME 这样它就可以保持一天的时间。 DATE 只能举行一次约会,而时间总是 00:00 .

DECLARE crt_date DATETIME;

您可能需要将过程参数更改为 DATETIME 也。

相关问题