我有开始日期和结束日期,我想根据间隔获取这两个日期之间的所有日期。 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并将输出存储在表中。
答案 0 :(得分:0)
Mysql不允许您仅通过查询获得此类结果,
您可以创建一个程序并插入1个表格,您可以将其用于您的日期。
尝试类似
的内容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;
现在日历表的所有日期都基于 startDate,endDate和interval 。
您可以尝试Demo