我正在尝试将日期时间序列插入表中。时间应该增加15分钟,所以我得到了
但是我实际上得到的是
这是一个真正的简单循环,我只是看不到这里缺少什么。
代码来自SO上的另一篇文章。
谢谢
特里
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 ;
答案 0 :(得分:3)
您需要将变量声明为DATETIME
,以便它可以保留一天中的时间。 DATE
只能保留一个日期,时间始终为00:00
。
DECLARE crt_date DATETIME;
您可能还希望将过程参数更改为DATETIME
。