我有开始日期和结束日期,我想根据间隔获取这两个日期之间的所有日期。 eg: start date:01-04-2018 and end date :20-04-2018 and interval is 3 我想要输出像01-04-2018,04-04-2018,07-04-2018。。。使用sql实现etc,并将输出存储在表中。
DELIMITER $$
DROP PROCEDURE IF EXISTS `calendar` $$
CREATE PROCEDURE `calendar`(
IN startDate DATE ,
IN endDate DATE ,
IN inter INT(1))
BEGIN
CREATE TABLE IF NOT EXISTS `calendar` (`date` DATE);
DELETE FROM `calendar`;
WHILE startDate <= endDate DO
INSERT INTO calendar VALUES(startDate);
SET startDate := DATE_ADD(startDate, INTERVAL inter DAY);
END WHILE ;
END$$
DELIMITER ;
CALL calendar('2018-04-01','2018-04-30',1);
SELECT * FROM calendar;
1条答案
按热度按时间dw1jzc5e1#
mysql不允许只通过查询得到这样的结果,
您可以创建一个过程并将其插入到一个表中,您可以将其用于日期。
试试这样的
现在,日历表中包含了基于开始日期、结束日期和间隔的所有日期。
你可以试一试