MySQL 日期範圍查詢:使用日期區間填入表格
手動填入 MySQL 表格中的指定日期範圍可能非常耗時。為了自動化此過程,可以使用預存程序一次將多個日期插入表格。
解
以下預存程序 filldates
將日期填入名為 tablename
的表格中,日期範圍在起始日期和結束日期之間:
<code class="language-sql">DROP PROCEDURE IF EXISTS filldates; DELIMITER | CREATE PROCEDURE filldates(dateStart DATE, dateEnd DATE) BEGIN WHILE dateStart <= dateEnd DO INSERT INTO tablename (datecolumn) VALUES (dateStart); SET dateStart = dateStart + INTERVAL 1 DAY; END WHILE; END | DELIMITER ;</code>
要使用此過程,請使用所需的起始日期和結束日期來呼叫它:
<code class="language-sql">CALL filldates('2011-01-01','2011-12-31');</code>
這會將 2011 年 1 月 1 日至 12 月 31 日之間的所有日期插入到 tablename
表格中。
檢查現有日期
您可以增強此過程,在插入日期之前檢查表格中是否已存在該日期:
<code class="language-sql">CREATE PROCEDURE filldates(dateStart DATE, dateEnd DATE) BEGIN DECLARE adate DATE; WHILE dateStart <= dateEnd DO SELECT datecolumn INTO adate FROM tablename WHERE datecolumn = dateStart LIMIT 1; IF adate IS NULL THEN INSERT INTO tablename (datecolumn) VALUES (dateStart); END IF; SET dateStart = dateStart + INTERVAL 1 DAY; END WHILE; END;</code>
這將防止將重複日期插入表格。
以上是如何有效率地向 MySQL 表填入一定範圍的日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!