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

MySQLでテーブル列の全日付レコードに1年を追加する方法

MySQLでは、DATE_ADD()関数を使うことで、日付や日時の値に指定した期間を簡単に加算できます。この記事では、テーブル内のすべての日付レコードに1年を追加する方法を、具体的な手順とともに解説します。

サンプルテーブルの作成

まず、デモ用のテーブルを作成します。ここでは、入社日を格納する JoiningDate カラムを持つテーブルを定義します。

mysql> create table DemoTable
    -> (
    -> JoiningDate datetime
    -> );
Query OK, 0 rows affected (0.59 sec)

レコードの挿入

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

mysql> insert into DemoTable values('2015-01-21');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('2017-04-02');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values('2018-12-31');
Query OK, 1 row affected (0.16 sec)

登録データの確認

SELECTステートメントを実行して、テーブル内のすべてのレコードを表示してみましょう。

mysql> select *from DemoTable;

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

+---------------------+
| JoiningDate         |
+---------------------+
| 2015-01-21 00:00:00 |
| 2017-04-02 00:00:00 |
| 2018-12-31 00:00:00 |
+---------------------+
3 rows in set (0.00 sec)

DATE_ADD()で1年を加算する

DATE_ADD()関数を使用して、各日付に1年を加算するクエリは以下の通りです。INTERVAL 1 YEARを指定することで、対象の日付にちょうど1年分が追加されます。

mysql> select date_add(JoiningDate, interval 1 year) from DemoTable;

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

+----------------------------------------+
| date_add(JoiningDate, interval 1 year) |
+----------------------------------------+
| 2016-01-21 00:00:00                    |
| 2018-04-02 00:00:00                    |
| 2019-12-31 00:00:00                    |
+----------------------------------------+
3 rows in set (0.00 sec)

補足:UPDATEで実際にデータを更新する場合

上記の例では表示のみを行いましたが、テーブルのデータそのものを更新したい場合は、UPDATE文と組み合わせて使用します。

mysql> update DemoTable
    -> set JoiningDate = date_add(JoiningDate, interval 1 year);
Query OK, 3 rows affected (0.05 sec)
Rows matched: 3  Changed: 3  Warnings: 0

このように、DATE_ADD()関数とINTERVALキーワードを組み合わせることで、日付に対する柔軟な加算処理が可能になります。年(YEAR)だけでなく、月(MONTH)や日(DAY)、時(HOUR)なども同じ書式で指定できるため、さまざまな日付計算に応用できます。

  1. MySQLで複数のカラムを1つの新しいカラムに連結する方法

    MySQLでは、CONCAT()関数を使うことで、テーブル内の複数のカラム(列)の値を簡単に連結し、1つの新しいカラムとして取得できます。ここでは、サンプルテーブルの作成からデータの挿入、実際にカラムを連結するクエリの実行までの手順を順番に解説します。1. サンプルテーブルの作成まず、CREATE TABLE文を使用してテーブルを作成します。mysql> create table DemoTable1396 -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Name varchar(40

  2. 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コマンドを使ってテ