MySQLで日時(datetime)フィールドに日数を追加する方法:DATE_ADD()関数の使い方
MySQLで日時フィールドに日を追加するには?
MySQLの datetime 型の値に日数を加算したい場合は、DATE_ADD() 関数を使用します。この関数を使えば、指定した日時に任意の日数・月数・年数などを簡単に追加できます。
基本構文
DATE_ADD() 関数の基本的な構文は以下のとおりです。
SELECT DATE_ADD(カラム名, INTERVAL 追加する日数 DAY) AS 別名 FROM テーブル名;
第2引数には INTERVAL キーワードを使い、追加したい単位(DAY、MONTH、YEARなど)と値を指定します。
サンプルテーブルを作成する
まずは動作確認用のテーブルを作成しましょう。ここでは datetime 型のカラムを持つテーブルを定義します。
mysql> CREATE TABLE AddOneDayDemo
-> (
-> YourDay DATETIME
-> );
Query OK, 0 rows affected (1.37 sec)
現在の日付を挿入する
次に、CURDATE() 関数を使って現在の日付をテーブルに挿入します。CURDATE() は実行時点のシステム日付を返す関数です。
mysql> INSERT INTO AddOneDayDemo VALUES(CURDATE()); Query OK, 1 row affected (0.17 sec)
挿入されたレコードを確認する
SELECT文で登録内容を表示してみましょう。
mysql> SELECT * FROM AddOneDayDemo;
実行結果は以下のとおりで、現在の日付が登録されていることがわかります。
| YourDay | +---------------------+ | 2018-11-27 00:00:00 | +---------------------+ 1 row in set (0.00 sec)
DATE_ADD()で1日を追加する
それでは、本題である「日にちを1日追加する」クエリを実行します。以下のように DATE_ADD() の INTERVAL に 1 day を指定します。
mysql> SELECT DATE_ADD(YourDay, INTERVAL 1 DAY) AS yourDayafteraddingoneday FROM AddOneDayDemo;
実行結果は次のようになります。
+--------------------------+ | yourDayafteraddingoneday | +--------------------------+ | 2018-11-28 00:00:00 | +--------------------------+ 1 row in set (0.00 sec)
まとめ
上記の出力結果からわかるように、元の日付「2018-11-27」に対して1日が加算され、「2018-11-28」という日付が取得できました。
DATE_ADD() 関数は日数だけでなく、INTERVAL 1 MONTH や INTERVAL 1 YEAR のように単位を変えれば、月や年の加算にも対応しています。逆に日付を減算したい場合は、負の値を指定するか、DATE_SUB() 関数を使用するとよいでしょう。日付の計算が必要な集計処理や期限管理など、さまざまな場面で活用できる便利な関数です。
-
MySQLのINTERVALを使って日付フィールドに1日を追加する方法
MySQLでは、DATE_ADD()関数とINTERVALを組み合わせることで、日付や日時フィールドに簡単に1日を追加できます。この記事では、実際にテーブルを作成し、INTERVAL 1 DAYを使って日付フィールドの値を更新する手順を解説します。1. テーブルを作成するまず、日付型(DATE)のカラムを持つテーブルを作成します。mysql> create table DemoTable-> (-> DueDate date->);Query OK, 0 rows affected (2.11 sec)2. レコードを挿入するINSERTコマンドを使って、テーブルにいく
-
MySQLでDATETIME型の日時に日数を追加する方法
MySQLでは、DATE_ADD()関数を使うことで、DATETIME型の値に指定した日数を簡単に追加できます。この記事では、実際にテーブルを作成し、日時フィールドに日数を加算するまでの手順を具体例とともに解説します。 1. テーブルの作成 まず、DATETIME型のカラムを持つテーブルを作成します。 mysql> create table DemoTable1871 ( ArrivalDate datetime ); Query OK, 0