Can't seem to find the answer I am looking for.
I want to create a range of dates from 2010-11-01 to 2015-01-01 in a table.
2010-11-01 2010-11-02 2010-11-03 etc...
Column datatype is 'Date'
Thanks
DROP PROCEDURE IF EXISTS datespopulate;
DELIMITER |
CREATE PROCEDURE datespopulate(dateStart DATE, dateEnd DATE)
BEGIN
WHILE dateStart <= dateEnd DO
INSERT INTO datetable (d) VALUES (dateStart);
SET dateStart = date_add(dateStart, INTERVAL 1 DAY);
END WHILE;
END;
|
DELIMITER ;
CALL datespopulate('2010-11-01','2015-01-01');
Note I named my table "datetable
" and the column is named "d
", but feel free to change this. Works fine on my end, let me know if you run in to an issue.
Kudos to Joe for getting the ball rolling. ;-)
You could certainly take the brute force approach.
set @d = cast('2010-11-01' as date);
while (@d < '2015-01-02') do
insert into YourTable
(YourColumn)
values
(@d);
set @d = date_add(@d, interval 1 day);
end while;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With