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

MySQLでテーブルの日付レコードを変更する方法|UPDATEとDATE_ADD()の使い方

MySQLで保存済みの日付データに年数を加算して変更したい場合、UPDATEコマンドとDATE_ADD()関数を組み合わせることで簡単に実現できます。ここでは、実際のSQLクエリ例を使いながら、日付レコードを変更する手順を順番に解説します。

1. テーブルを作成する

まず、日付型(date)のカラムを持つテーブルを作成します。

mysql> create table DemoTable1984
    (
    ShippingDate date
    );
Query OK, 0 rows affected (0.00 sec)

2. レコードを挿入する

次に、INSERTコマンドを使ってテーブルにいくつかの日付レコードを追加します。

mysql> insert into DemoTable1984 values('2014-01-11');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1984 values('2015-12-23');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1984 values('2017-10-31');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1984 values('2018-06-01');
Query OK, 1 row affected (0.00 sec)

3. 現在のレコードを確認する

SELECT文でテーブル内のすべてのレコードを表示し、更新前の状態を確認しておきましょう。

mysql> select * from DemoTable1984;

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

+--------------+
| ShippingDate |
+--------------+
| 2014-01-11   |
| 2015-12-23   |
| 2017-10-31   |
| 2018-06-01   |
+--------------+
4 rows in set (0.00 sec)

4. DATE_ADD()で日付を変更する

いよいよ日付を変更します。UPDATE文の中でDATE_ADD()関数を使用し、「INTERVAL 2 year」を指定することで、すべてのShippingDateに2年間を加算できます。

mysql> update DemoTable1984 set ShippingDate=date_add(ShippingDate,interval 2 year);
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4 Warnings: 0

5. 更新後のレコードを確認する

再度SELECT文を実行して、日付が正しく変更されたかどうかを確認します。

mysql> select * from DemoTable1984;

実行結果は以下の通りです。すべての日付が2年後に更新されていることがわかります。

+--------------+
| ShippingDate |
+--------------+
| 2016-01-11   |
| 2017-12-23   |
| 2019-10-31   |
| 2020-06-01   |
+--------------+
4 rows in set (0.00 sec)

まとめ

このように、UPDATEDATE_ADD()を組み合わせれば、既存の日付レコードに対して年数を一括で加算できます。なお、DATE_ADD()は「year」以外にも「month」や「day」などの単位に対応しているため、月単位・日単位での日付計算にも同じ要領で活用できます。

  1. MySQLで現在の日付より前の日付データを抽出する方法

    MySQLでは、NOW() 関数と比較演算子を使うことで、現在の日時より前の日付を持つレコードを簡単に抽出できます。この記事では、実際にテーブルを作成し、サンプルデータを登録したうえで、現在日時より過去の日付レコードを取得する手順を解説します。 1. サンプルテーブルの作成 まず、日付型(DATETIME)のカラムを持つテーブルを作成しましょう。 mysql> create table DemoTable1877 ( DueDate datetime ); Query OK, 0 rows affected (0.00 sec) 2. テストデータの挿入 次に、IN

  2. MySQLクエリでテーブル列の日付形式を変更する方法

    MySQLクエリでテーブル列の日付形式を変更する方法 MySQLでテーブルに保存された日付の表示形式を変更するには、DATE_FORMAT()関数を使用します。この記事では、サンプルテーブルを作成し、実際に日付形式を変換するまでの手順をサンプルコード付きでわかりやすく解説します。 1. サンプルテーブルの作成 まず、datetime型の列を持つテーブルを作成しましょう。 mysql> create table DemoTable1906 ( DueTime datetime ); Query OK, 0 rows affected (0.00 sec) 2.