У меня есть дата начала и дата окончания, я хочу получить все даты между этими двумя датами на основе интервала. 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 и сохранить вывод в таблице.
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 и интервала.
Вы можете попробовать Демо