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()関数を使用するか、負の値を指定することでも対応可能です。
-
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. テストデー
-
MySQLストアドプロシージャで条件分岐を正しく実装する方法を解説
MySQLストアドプロシージャにおける条件分岐の基本MySQLのストアドプロシージャ内で条件を設定するには、IF ... THEN ... ELSE ... END IF構文を使用します。基本的な書式は以下のとおりです。if yourCondition then yourStatement1; else yourStatement2; end if; end //この構文を使うことで、条件が真(true)の場合はTHEN以降の処理が実行され、偽(false)の場合はELSE以降の処理が実行されます。 実際の実装例それでは、上記の構文をもとに、具体的なストアドプロシージャを作成し