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

MySQLでINSERTと同時に日付・時刻の値を加算して更新する方法

MySQLのINSERT時に日付や時刻を加算する方法

この記事では、INSERTクエリを実行する際に、datetime型の値をそのまま挿入するのではなく、指定した期間(分・時間・日・月・年)を加算した値を登録する方法を解説します。DATE_ADD関数を使うことで、挿入と同時に日付の計算を行うことができます。

1. テーブルの作成

まず、サンプル用のテーブルを作成します。

mysql> create table DemoTable816 (DueDate datetime);
Query OK, 0 rows affected (0.45 sec)

2. DATE_ADD関数を使ったデータの挿入

次に、INSERTコマンドでレコードを挿入します。ポイントは、DATE_ADD関数をVALUES句の中で使用し、基準となる日時に対してINTERVALで期間を指定している点です。

以下は、INSERT実行時に分・時間・日・月・年をそれぞれ加算するクエリの例です。

mysql> insert into DemoTable816 values(date_add(now(),interval 3 minute));
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable816 values(date_add('2018-01-21 00:00:00',interval 3 Hour));
Query OK, 1 row affected (0.52 sec)
mysql> insert into DemoTable816 values(date_add('2016-11-11 12:40:00',interval 3 Day));
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable816 values(date_add('2018-12-01 11:00:00',interval 3 Month));
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable816 values(date_add('2011-03-21 10:00:00',interval 3 Year));
Query OK, 1 row affected (0.16 sec)

この例では、以下のように5種類のパターンで日付を加算しています。

  • now():現在の日時に3分を加算
  • 指定日時に3時間を加算
  • 指定日時に3日を加算
  • 指定日時に3ヶ月を加算
  • 指定日時に3年を加算

3. 挿入結果の確認

SELECT文ですべてのレコードを表示して結果を確認します。

mysql> select *from DemoTable816;

実行すると、以下のような出力が得られます。

+---------------------+
| DueDate             |
+---------------------+
| 2019-08-03 13:08:43 |
| 2018-01-21 03:00:00 |
| 2016-11-14 12:40:00 |
| 2019-03-01 11:00:00 |
| 2014-03-21 10:00:00 |
+---------------------+
5 rows in set (0.00 sec)

まとめ

このように、MySQLではINSERT文の中でDATE_ADD関数を組み合わせることで、現在時刻や任意の日時に対して「分」「時間」「日」「月」「年」などの単位で加算した値を簡単に登録できます。期限日(DueDate)の自動計算など、実務でもよく使われるテクニックなので、ぜひ活用してください。

  1. MySQLで現在の日付(CURDATE())に一致する特定の日付のレコードを更新する方法

    MySQLでは、CURDATE()関数を使うことで、現在の日付に一致するレコードだけを抽出し、UPDATE文で効率的に値を変更できます。本記事では、実際のサンプルを通じてその手順をわかりやすく解説します。 1. サンプルテーブルの作成 まず、デモ用のテーブルを作成します。ここでは「金額(Amount)」と「期日(DueDate)」を持つシンプルなテーブルを用意しました。 mysql> create table DemoTable1822      (      Amount int,      Du

  2. MySQLでレコードを挿入しながら日付をフォーマットする方法(DATE_FORMAT活用)

    MySQLでは、INSERT文の中でDATE_FORMAT()関数を使うことで、レコードを挿入する際に日付を任意の形式に整形できます。本記事では、実際にテーブルを作成し、日付をフォーマットしながらデータを挿入する手順を具体的なSQL例とともに解説します。1. テーブルの作成まず、フォーマット済みの日付文字列を格納するためのテーブルを作成します。ここでは、VARCHAR型のカラム「ShippingDate」を持つシンプルなテーブルを用意します。mysql> create table DemoTable2012 -> ( -> ShippingDate varch