MySQLでDATETIMEフィールドに1日を追加する方法|DATE_ADD()関数の使い方を解説
DATE_ADD()関数とは
MySQLでは、DATE_ADD()関数を使うことで、テーブルのDATETIME型フィールドに簡単に日数を加算することができます。日付や時刻の計算を行いたい場合に非常に便利な関数です。
基本構文
DATE_ADD(日付, INTERVAL 加算値 単位)
第1引数に対象の日付(DATETIME型)、第2引数にINTERVALキーワードを使って加算する値と単位を指定します。
DATETIMEフィールドに1日を追加する具体例
以下の例では、「testing」というテーブルのRegDateカラム(DATETIME型)に1日を追加しています。
mysql> Select StudentName, RegDate, Date_ADD(RegDate, INTERVAL +1 day) AS 'NEXT DAY'
from testing where StudentName = 'gaurav';
+-------------+---------------------+---------------------+
| StudentName | RegDate | NEXT DAY |
+-------------+---------------------+---------------------+
| Gaurav | 2017-10-29 08:48:33 | 2017-10-30 08:48:33 |
+-------------+---------------------+---------------------+
1 row in set (0.00 sec)
クエリの解説
このクエリでは、WHERE句によってStudentNameが「Gaurav」のレコードのみを抽出し、そのレコードのRegDateにINTERVAL +1 dayを指定して1日を加算しています。
結果を見ると、元の日付「2017-10-29 08:48:33」に対して1日が追加され、「2017-10-30 08:48:33」が表示されていることがわかります。時刻部分(08:48:33)は変更されず、日付部分だけが1日進んでいます。
補足:INTERVALの単位について
INTERVALキーワードでは、「day」以外にも以下のような単位を指定できます。
- SECOND … 秒
- MINUTE … 分
- HOUR … 時間
- DAY … 日
- MONTH … 月
- YEAR … 年
また、負の値を指定すれば日付を減算することも可能です。例えば「INTERVAL -1 day」とすると、1日前の日付を取得できます。
-
MySQLでchar型カラムをdatetime型に変換する方法をわかりやすく解説
MySQLでは、char型として保存された日付文字列をdatetime形式に変換したいケースがあります。本記事では、REPLACE関数とSTR_TO_DATE関数を組み合わせて、「12/31/2017 10:50」のような米国式の日付文字列を「2017-12-31 10:50:00」というdatetime形式へ変換する手順を、実際のSQLと実行結果付きで解説します。サンプルテーブルの作成まず、テーブルを作成します。ここでは配送日(ShippingDate)をあえてchar型として宣言しています。mysql> create table DemoTable1472 &n
-
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コマンドを使って、テーブルにいく