日付があるテーブルを一つ準備して置くと有用に使える。
 
USE analysis;
 
 
CREATE TABLE tComDay(
 Idx int primary key NOT NULL,
 ComDay datetime NOT NULL
 );
 
ALTER TABLE tComDay ADD INDEX ix_tComDay_ComDay (ComDay);
 
truncate table tComDay;
drop procedure if exists pInsertComday;
 
 
delimiter $$
CREATE PROCEDURE pInsertComday()
BEGIN
DECLARE sn int;
  SET sn =1;
  
 
  WHILE sn <= 36525 DO
    INSERT INTO tComDay (Idx, ComDay)
    SELECT sn, DATE_ADD('1999-12-31', INTERVAL + sn DAY);
    SET sn = sn + 1;
  END WHILE;
END $$
delimiter ;
 
 
call pInsertComday;
## SP実行時間:約40秒
 
 
select * from tComDay limit 10;
 
drop procedure if exists pInsertComday;