DELIMITER $$ USE `#######`$$ DROP PROCEDURE IF EXISTS `GenDates`$$ CREATE DEFINER=`####`@`%` PROCEDURE `GenDates`(pFromDate DATETIME, pToDate DATETIME) BEGIN IF pFromDate < pToDate THEN BEGIN DELETE FROM AgentDates WHERE DATE(`DateTime`) BETWEEN pFromDate AND pToDate; WHILE pFromDate <= pToDate DO BEGIN INSERT INTO AgentDates VALUES(pFromDate); SET pFromDate=ADDDATE(pFromDate,INTERVAL 1 DAY); END; END WHILE; END; END IF; END$$ DELIMITER ;