MySQLで45日後の日付を計算し、新しい列として表示するクエリの書き方
MySQLで45日後の日付を新しい列に表示する方法
日付・時刻型の列に45日を加算し、その結果を元の列とは別の新しい列として表示したい場合は、date_add() 関数を使うのが最も簡単です。ここでは、テーブルの作成からデータの挿入、そして45日を加算するクエリの実行まで、手順を追って解説します。
1. テーブルを作成する
まず、DATETIME型の列「DueTime」を持つテーブルを作成します。
mysql> create table DemoTable1930
(
DueTime datetime
);
Query OK, 0 rows affected (0.00 sec)
2. サンプルデータを挿入する
続いて、INSERT文を使ってテスト用のレコードを登録します。
mysql> insert into DemoTable1930 values('2017-10-21');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1930 values('2019-12-14');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1930 values('2018-11-26');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1930 values('2014-06-16');
Query OK, 1 row affected (0.00 sec)
3. 登録したレコードを確認する
SELECT文ですべてのレコードを表示してみましょう。
mysql> select * from DemoTable1930;
実行すると、以下のような出力が得られます。
+---------------------+ | DueTime | +---------------------+ | 2017-10-21 00:00:00 | | 2019-12-14 00:00:00 | | 2018-11-26 00:00:00 | | 2014-06-16 00:00:00 | +---------------------+ 4 rows in set (0.00 sec)
4. date_add()で45日を加算するクエリ
いよいよ本題です。date_add() を使ってDueTime列に45日を加算し、結果を「ManyDays」という別名の新しい列として表示します。
mysql> select DueTime,date_add(DueTime, interval 45 day) as ManyDays from DemoTable1930;
このクエリを実行すると、以下のような結果が出力されます。
+---------------------+---------------------+ | DueTime | ManyDays | +---------------------+---------------------+ | 2017-10-21 00:00:00 | 2017-12-05 00:00:00 | | 2019-12-14 00:00:00 | 2020-01-28 00:00:00 | | 2018-11-26 00:00:00 | 2019-01-10 00:00:00 | | 2014-06-16 00:00:00 | 2014-07-31 00:00:00 | +---------------------+---------------------+ 4 rows in set (0.00 sec)
まとめ
date_add(列名, INTERVAL 45 DAY) の形式を使えば、元の日付から45日後の日付を簡単に計算し、AS句で別名を付けることで既存の列とは独立した新しい列として表示できます。なお、「ManyDays」はあくまで表示上の別名であり、テーブルの構造自体は変更されません。また、INTERVALの数値や単位(DAY、MONTH、YEARなど)を変更すれば、任意の期間の加算・減算にも柔軟に対応できるため、期限日の計算やスケジュール管理など、さまざまな場面で活用できます。
-
MySQLの1つのクエリで日付に1年と2日を追加する方法
MySQLで日付に1年と2日を同時に加算したい場合は、DATE_ADD関数とINTERVALを組み合わせます。DATE_ADD関数を入れ子(ネスト)にするのがポイントです。ここでは、実際にテーブルを作成してサンプルデータを操作しながら、手順を詳しく解説します。 1. サンプルテーブルを作成する まず、日付(DATE型)を格納するカラムを持つテーブルを作成します。 mysql> create table DemoTable1376 -> ( -> AdmissionDate date -> ); Query OK, 0 rows affected
-
MySQLで重複するIDをカウントし、結果を別の列に表示する方法
MySQLでは、GROUP BY句とCOUNT(DISTINCT)関数を組み合わせることで、重複するIDごとにデータを集計し、その結果を別の列として表示できます。この記事では、実際のSQL例を使って手順をわかりやすく解説します。 1. サンプルテーブルを作成する まず、テーブルを作成しましょう。 mysql> create table DemoTable1453 -> ( -> CustomerId int, -> Custom