ホームページ > データベース > mysql チュートリアル > MySQL テーブルに日付範囲を設定するにはどうすればよいですか?

MySQL テーブルに日付範囲を設定するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-21 02:52:09
オリジナル
805 人が閲覧しました

How to Populate a MySQL Table with a Date Range?

MySQL での日付シリーズの生成

データベース プログラミングでは、多くの場合、一連の日付を入力したテーブルを作成する必要があります。 これは、毎日のデータの追跡やカレンダーベースのシステムの作成など、さまざまなアプリケーションに役立ちます。

日付入力用の MySQL ストアド プロシージャ

次の MySQL ストアド プロシージャは、テーブルに日付範囲を効率的に設定します。

<code class="language-sql">DROP PROCEDURE IF EXISTS populate_date_range;
DELIMITER //
CREATE PROCEDURE populate_date_range(IN start_date DATE, IN end_date DATE)
BEGIN
  DECLARE current_date DATE;
  SET current_date = start_date;
  WHILE current_date <= end_date DO
    INSERT INTO tablename (date_column) VALUES (current_date);
    SET current_date = DATE_ADD(current_date, INTERVAL 1 DAY);
  END WHILE;
END //
DELIMITER ;</code>
ログイン後にコピー

このプロシージャ populate_date_range は、開始日と終了日を入力として受け取ります。 date_column に達するまで、各日付を tablename テーブルの end_date に繰り返し挿入します。

既存データの処理

日付の重複入力を避ける必要がある場合は、挿入前に既存の日付をチェックするように手順を変更できます。

<code class="language-sql">DROP PROCEDURE IF EXISTS populate_date_range_no_duplicates;
DELIMITER //
CREATE PROCEDURE populate_date_range_no_duplicates(IN start_date DATE, IN end_date DATE)
BEGIN
  DECLARE current_date DATE;
  SET current_date = start_date;
  WHILE current_date <= end_date DO
    IF NOT EXISTS (SELECT 1 FROM tablename WHERE date_column = current_date) THEN
      INSERT INTO tablename (date_column) VALUES (current_date);
    END IF;
    SET current_date = DATE_ADD(current_date, INTERVAL 1 DAY);
  END WHILE;
END //
DELIMITER ;</code>
ログイン後にコピー

この改訂された手順 populate_date_range_no_duplicates には、重複する日付の挿入を防ぐための NOT EXISTS を使用したチェックが含まれています。 tablenamedate_column を実際のテーブル名と列名に置き換えてください。

以上がMySQL テーブルに日付範囲を設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート