创建一张表
CREATE TABLE `mydate` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`mydate` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1
创建存储过程
CREATE PROCEDURE intsertRangeDate (IN startTime varchar(10),IN endTime varchar(10))
BEGIN
DECLARE i INT DEFAULT 0;
DECLARE beginDate datetime;
DECLARE endDate datetime;
DECLARE difDay int DEFAULT 0;
set beginDate =DATE_FORMAT(CONCAT(startTime,' 00:00:00'),'%Y-%m-%d %H:%i:%s');
set endDate = DATE_FORMAT(CONCAT(endTime,' 00:00:00'),'%Y-%m-%d %H:%i:%s');
select (to_days(endDate) - to_days(beginDate)) into difDay;
WHILE i<difDay
DO
insert into mydate (mydate) values (DATE_ADD(beginDate,INTERVAL i DAY));
SET i=i+1;
END WHILE ;
END;;
调用存储过程
TRUNCATE TABLE mydate;
call intsertRangeDate('2016-01-01','2018-01-01');
select * from mydate;