MySQL 日期範圍表格填入方法
在使用 MySQL 資料庫時,您經常需要產生並填入包含日期範圍的表格。如果手動執行此任務,將會非常繁瑣。本文介紹一種高效率的自動化方法。
假設我們需要填入名為 "tablename" 的 MySQL 表格,其中包含 2011 年 1 月 1 日至 2011 年 12 月 31 日之間的所有日期。表格只有一個名為 "_date" 的 DATE 類型欄位。
我們可以使用 MySQL 預存程序來實作:
DROP PROCEDURE IF EXISTS filldates; DELIMITER | CREATE PROCEDURE filldates(dateStart DATE, dateEnd DATE) BEGIN WHILE dateStart <= dateEnd DO INSERT INTO tablename (_date) VALUES (dateStart); SET dateStart = date_add(dateStart, INTERVAL 1 DAY); END WHILE; END | DELIMITER ; CALL filldates('2011-01-01', '2011-12-31');
以下是此預存程序的工作原理:
為了避免插入重複日期,可以使用以下修改後的版本:
CREATE PROCEDURE filldates(dateStart DATE, dateEnd DATE) BEGIN WHILE dateStart <= dateEnd DO IF NOT EXISTS (SELECT 1 FROM tablename WHERE _date = dateStart) THEN INSERT INTO tablename (_date) VALUES (dateStart); END IF; SET dateStart = date_add(dateStart, INTERVAL 1 DAY); END WHILE; END;
此修改確保不會將重複日期插入表格中。
以上是如何有效率地向 MySQL 表填入日期範圍?的詳細內容。更多資訊請關注PHP中文網其他相關文章!