MySQLで日付に日数を加算する方法:DATE_ADD()関数の使い方
MySQLで日付に日数を追加したい場合は、DATE_ADD()関数を使用します。この関数を使うことで、指定した日付に対して任意の日数を簡単に加算できます。
基本構文
日付に日数を加算するための基本構文は以下のとおりです。
INSERT INTO テーブル名 VALUES(DATE_ADD(now(), INTERVAL n DAY));
now()とcurdate()の違い
上記の構文では、now()の代わりにcurdate()を使用することもできます。両者の違いは以下のとおりです。
- curdate(): 日付のみを保存します(時刻は00:00:00になる)
- now(): 日付と時刻の両方を保存します
実際にテーブルを作成して検証してみよう
それでは、両方の関数の動作を確認するために、サンプルテーブルを作成しましょう。
mysql> create table addingDaysDemo -> ( -> yourDateTime datetime -> ); Query OK, 0 rows affected (1.09 sec)
次に、INSERT文の中でnow()とcurdate()の両方を使用し、INTERVALキーワードで日数を加算していきます。
now()を使用して日数を加算する場合
mysql> insert into addingDaysDemo values(date_add(now(),interval 1 day)); Query OK, 1 row affected (0.14 sec) mysql> insert into addingDaysDemo values(date_add(now(),interval 4 day)); Query OK, 1 row affected (0.17 sec) mysql> insert into addingDaysDemo values(date_add(now(),interval 5 day)); Query OK, 1 row affected (0.14 sec) mysql> insert into addingDaysDemo values(date_add(now(),interval 7 day)); Query OK, 1 row affected (0.17 sec) mysql> insert into addingDaysDemo values(date_add(now(),interval 9 day)); Query OK, 1 row affected (0.15 sec)
curdate()を使用して日数を加算する場合
mysql> insert into addingDaysDemo values(date_add(curdate(),interval 1 day)); Query OK, 1 row affected (0.18 sec) mysql> insert into addingDaysDemo values(date_add(curdate(),interval 4 day)); Query OK, 1 row affected (0.16 sec) mysql> insert into addingDaysDemo values(date_add(curdate(),interval 5 day)); Query OK, 1 row affected (0.17 sec) mysql> insert into addingDaysDemo values(date_add(curdate(),interval 7 day)); Query OK, 1 row affected (0.12 sec) mysql> insert into addingDaysDemo values(date_add(curdate(),interval 9 day)); Query OK, 1 row affected (0.15 sec)
登録結果の確認
SELECT文ですべてのレコードを表示して、結果を確認しましょう。
mysql> select *from addingDaysDemo;
実行結果は以下のとおりです。
+---------------------+ | yourDateTime | +---------------------+ | 2018-12-14 15:36:57 | | 2018-12-17 15:37:06 | | 2018-12-18 15:37:12 | | 2018-12-20 15:37:17 | | 2018-12-22 15:37:21 | | 2018-12-14 00:00:00 | | 2018-12-17 00:00:00 | | 2018-12-18 00:00:00 | | 2018-12-20 00:00:00 | | 2018-12-22 00:00:00 | +---------------------+ 10 rows in set (0.00 sec)
結果からわかること
出力結果を見ると、now()を使用したレコードには現在の日付・時刻がそのまま反映されているのに対し、curdate()を使用したレコードの時刻はすべて「00:00:00」になっていることが確認できます。
このように、DATE_ADD()関数とINTERVALキーワードを組み合わせることで、MySQL上で柔軟に日付の加算処理を行うことが可能です。用途に応じてnow()かcurdate()を使い分けるとよいでしょう。
-
PHPで日付($Date)に日数を追加する方法
PHPで日付変数に日数を追加したい場合、主に2つの方法があります。1つは strtotime() 関数を使う方法、もう1つは DateTime クラスの date_add() 関数を使う方法です。方法1:strtotime() 関数を使用するstrtotime() を使うと、文字列形式の日付に対して「+ 20 days」のような相対的な表現を簡単に適用できます。サンプルコード<?php $date = 2019-11-11; echo 日付を表示...\n; &n
-
C#のDateTimeで現在の日付に日数を追加する方法
C#では、DateTime構造体を使うことで、現在の日付に対して簡単に日数を追加できます。この記事では、その基本的な手順とサンプルコードを紹介します。 手順1:現在の日付を取得する まず、DateTime.Todayプロパティを使って、現在の日付(時刻は午前0時)を取得します。 DateTime.Today 手順2:AddDays()メソッドで日数を追加する 次に、AddDays()メソッドを使用して、取得した日付に日数を加算します。以下の例では、現在の日付に10日を追加しています。 DateTime.Today.AddDays(10) なお、AddDays()には負の値も渡せるため、例えばA