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

MySQLでDATETIME型の値に1日を追加する方法|DATE_ADD()関数の使い方

MySQLでは、DATETIME形式の値に1日(または任意の日数)を加算したい場合、DATE_ADD()関数を使用します。この記事では、基本的な構文から実テーブルへの応用例まで、具体的なSQLサンプルとともにわかりやすく解説します。

DATE_ADD()関数の基本構文

DATETIME値に1日を追加する際の基本的な構文は以下の通りです。

select date_add(now(),interval 1 day) as anyVariableName;

now()は現在の日時を返す関数で、その結果に対してinterval 1 dayを指定することで1日後の日時を取得できます。それでは、実際にこの構文を実行してみましょう。

mysql> select date_add(now(),interval 1 day) as Adding1DayDemo;

実行結果は以下の通りです。

+---------------------+
| Adding1DayDemo      |
+---------------------+
| 2018-12-07 20:06:59 |
+---------------------+
1 row in set (0.00 sec)

日付のみに1日を追加する場合:curdate()を使用

時刻情報が不要で、日付だけに1日を加算したい場合は、curdate()関数を使います。curdate()は現在の日付のみ(時刻は00:00:00)を返すため、結果も日付だけが表示されます。

mysql> select date_add(curdate(),interval 1 day) as Adding1DayDemo;

実行結果:

+----------------+
| Adding1DayDemo |
+----------------+
| 2018-12-07     |
+----------------+
1 row in set (0.00 sec)

テーブルを作成してDATETIME値を登録する

次に、実際のテーブルに対してDATE_ADD()を適用する例を見てみましょう。まず、DATETIME型のカラムを持つテーブルを作成します。

mysql> create table AddOneday
   -> (
   -> DueTime datetime
   -> );
Query OK, 0 rows affected (1.05 sec)

続いて、now()curdate()の2つの関数を使ってレコードを挿入します。

mysql> insert into AddOneday values(now());
Query OK, 1 row affected (0.22 sec)

mysql> insert into AddOneday values(curdate());
Query OK, 1 row affected (0.53 sec)

SELECT文ですべてのレコードを確認してみます。

mysql> select *from AddOneday;

実行結果:

+---------------------+
| DueTime             |
+---------------------+
| 2018-12-06 20:10:47 |
| 2018-12-06 00:00:00 |
+---------------------+
2 rows in set (0.00 sec)

テーブルのDATETIMEカラムに1日を加算する

登録したデータの「DueTime」カラムに対して、DATE_ADD()関数で1日を加算してみます。

mysql> select date_add(DueTime,interval 1 day) as AddingOneDay from AddOneday;

実行結果を見ると、すべてのレコードの日付が1日進んでいることが確認できます。

+---------------------+
| AddingOneDay        |
+---------------------+
| 2018-12-07 20:10:47 |
| 2018-12-07 00:00:00 |
+---------------------+
2 rows in set (0.00 sec)

まとめ

MySQLでDATETIME値に日数を加算する場合はDATE_ADD()関数が便利です。現在日時ベースならnow()、日付のみならcurdate()を組み合わせることで、用途に応じた柔軟な日付計算が可能になります。また、interval 1 dayの部分を変更すれば、1週間(interval 7 day)や1か月(interval 1 month)など、さまざまな期間の加算にも対応できます。

  1. HTMLのdatetime-local入力タイプで日時を入力・送信する方法

    datetime-local入力タイプとはHTMLでは、<input type=datetime-local> を使用することで、ユーザーが日付と時刻を選択できる入力フィールドを作成できます。この入力フィールドがクリックされると、日時を選択するためのピッカー(カレンダー形式のポップアップ)が表示され、マウス操作だけで直感的に日時を指定できます。type=datetime-local で送信される値は、「YYYY-MM-DDThh:mm」(例:2025-06-15T14:30)という形式になります。タイムゾーン情報は含まれない点に注意してください。実装サンプル以下は、学生の氏名と試験

  2. 【JavaScript】MySQLのDATETIME値をJSON形式に変換する方法を解説

    MySQL DATETIME値をJSON形式に変換する基本手法MySQLのDATETIME値をJavaScriptでJSON形式に変換するには、JSON.stringify()メソッドを使用します。手順としては、まずDateオブジェクトとして日時を取得し、年・月・日・時・分・秒をそれぞれ取り出してオブジェクトにまとめ、最後にJSON文字列へ変換します。サンプルコード以下は、MySQLのDATETIME値をJSON形式に変換するJavaScriptのコード例です。<script>var mySQLDateTime = new Date(Fri Sep 06 2019 22:54:48