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

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()を使い分けるとよいでしょう。

  1. PHPで日付($Date)に日数を追加する方法

    PHPで日付変数に日数を追加したい場合、主に2つの方法があります。1つは strtotime() 関数を使う方法、もう1つは DateTime クラスの date_add() 関数を使う方法です。方法1:strtotime() 関数を使用するstrtotime() を使うと、文字列形式の日付に対して「+ 20 days」のような相対的な表現を簡単に適用できます。サンプルコード<?php    $date = 2019-11-11;    echo 日付を表示...\n;   &n

  2. C#のDateTimeで現在の日付に日数を追加する方法

    C#では、DateTime構造体を使うことで、現在の日付に対して簡単に日数を追加できます。この記事では、その基本的な手順とサンプルコードを紹介します。 手順1:現在の日付を取得する まず、DateTime.Todayプロパティを使って、現在の日付(時刻は午前0時)を取得します。 DateTime.Today 手順2:AddDays()メソッドで日数を追加する 次に、AddDays()メソッドを使用して、取得した日付に日数を加算します。以下の例では、現在の日付に10日を追加しています。 DateTime.Today.AddDays(10) なお、AddDays()には負の値も渡せるため、例えばA