Mysql 生成指定时间段内的所有日期
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | DELIMITER $$ DROP PROCEDURE IF EXISTS create_calendar $$ CREATE PROCEDURE create_calendar (s_date DATE , e_date DATE ) BEGIN -- 生成一个日历表 SET @createSql = 'CREATE TABLE IF NOT EXISTS calendar_custom ( `date` date NOT NULL, UNIQUE KEY `unique_date` (`date`) USING BTREE )ENGINE=InnoDB DEFAULT CHARSET=utf8' ; prepare stmt from @createSql; execute stmt; WHILE s_date <= e_date DO INSERT IGNORE INTO calendar_custom VALUES ( DATE (s_date)) ; SET s_date = s_date + INTERVAL 1 DAY ; END WHILE ; END $$ DELIMITER ; -- 生成数据到calendar_custom表2009-01-01~2029-01-01之间的所有日期数据 CALL create_calendar ( '2009-01-01' , '2029-01-01' ); |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步