MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで期日にINTERVAL(間隔)条件を正しく実装する方法をわかりやすく解説

MySQLのDATE_ADD関数を使った期間(インターバル)条件の実装方法

MySQLでは、DATE_ADD()関数とINTERVAL句を組み合わせることで、日付に対して月数や日数などの間隔を正しく加算・減算できます。ここでは、期日(DueDate)カラムに保存された日付へ「5ヶ月」を一括で加算する具体例を通して、その手順を解説します。

1. サンプルテーブルを作成する

まず、期日を格納するためのテーブルを作成します。

mysql> create table DemoTable (DueDate date);
Query OK, 0 rows affected (0.92 sec)

2. テストデータを挿入する

INSERT文を使って、サンプルレコードをいくつか登録しましょう。

mysql> insert into DemoTable values('2019-01-12');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('2019-04-01');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('2019-07-19');
Query OK, 1 row affected (0.15 sec)

3. 登録したデータを確認する

SELECT文ですべてのレコードを表示します。

mysql> select *from DemoTable;

実行結果:

+------------+
| DueDate |
+------------+
| 2019-01-12 |
| 2019-04-01 |
| 2019-07-19 |
+------------+
3 rows in set (0.00 sec)

4. INTERVAL条件を使って期日を5ヶ月ずつ進める

次のUPDATE文を実行すると、カラム内のすべての日付値に対して、正しく「5ヶ月」の間隔を加算できます。ポイントは、単純な数値計算ではなくdate_add(DueDate, interval 5 MONTH)のように記述することです。これにより、月末や閏年なども考慮された正確な日付演算が可能になります。

mysql> update DemoTable set DueDate=date_add(DueDate,interval 5 MONTH);
Query OK, 3 rows affected (0.19 sec)
Rows matched: 3 Changed: 3 Warnings: 0

5. 更新後のデータを確認する

もう一度SELECT文を実行して、テーブルの内容を確認してみましょう。

mysql> select *from DemoTable;

実行結果:

+------------+
| DueDate |
+------------+
| 2019-06-12 |
| 2019-09-01 |
| 2019-12-19 |
+------------+
3 rows in set (0.00 sec)

まとめ

このように、MySQLで日付に間隔条件を実装する場合は、DATE_ADD()関数とINTERVAL句を併用するのが基本です。「interval 5 MONTH」の部分を「interval 3 DAY」や「interval 1 YEAR」などに変更すれば、日単位・年単位の加算にも簡単に対応できます。また、減算したい場合はDATE_SUB()関数を使用するか、負の値を指定することでも対応可能です。

  1. MySQLで期日にINTERVAL(間隔)条件を正しく実装する方法をわかりやすく解説

    MySQLのDATE_ADD関数を使った期間(インターバル)条件の実装方法MySQLでは、DATE_ADD()関数とINTERVAL句を組み合わせることで、日付に対して月数や日数などの間隔を正しく加算・減算できます。ここでは、期日(DueDate)カラムに保存された日付へ「5ヶ月」を一括で加算する具体例を通して、その手順を解説します。1. サンプルテーブルを作成するまず、期日を格納するためのテーブルを作成します。mysql> create table DemoTable (DueDate date);Query OK, 0 rows affected (0.92 sec)2. テストデー

  2. MySQLストアドプロシージャで条件分岐を正しく実装する方法を解説

    MySQLストアドプロシージャにおける条件分岐の基本MySQLのストアドプロシージャ内で条件を設定するには、IF ... THEN ... ELSE ... END IF構文を使用します。基本的な書式は以下のとおりです。if yourCondition then yourStatement1; else yourStatement2; end if; end //この構文を使うことで、条件が真(true)の場合はTHEN以降の処理が実行され、偽(false)の場合はELSE以降の処理が実行されます。 実際の実装例それでは、上記の構文をもとに、具体的なストアドプロシージャを作成し