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 (0.68 sec)
2. サンプルデータを挿入する
INSERT文を使って、テーブルにいくつかの日付レコードを登録します。
mysql> insert into DemoTable1376 values('2018-01-21');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1376 values('2017-12-01');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1376 values('2018-11-02');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1376 values('2019-03-14');
Query OK, 1 row affected (0.17 sec)
3. 登録したデータを確認する
SELECT文で全レコードを表示してみましょう。
mysql> select * from DemoTable1376;
実行結果は次のとおりです。
+---------------+ | AdmissionDate | +---------------+ | 2018-01-21 | | 2017-12-01 | | 2018-11-02 | | 2019-03-14 | +---------------+ 4 rows in set (0.00 sec)
4. 日付に1年と2日を加算するクエリ
次のクエリが、1つのSQLで日付に1年と2日をまとめて追加する方法です。内側のDATE_ADDで「1年」を加算し、その結果に対して外側のDATE_ADDでさらに「2日」を加算しています。
mysql> select date_add(date_add(AdmissionDate,interval 1 year),interval 2 day) AS AfterAddingOneYearTwoDays from DemoTable1376;
実行結果は次のとおりです。
+---------------------------+ | AfterAddingOneYearTwoDays | +---------------------------+ | 2019-01-23 | | 2018-12-03 | | 2019-11-04 | | 2020-03-16 | +---------------------------+ 4 rows in set (0.00 sec)
出力結果を見ると、たとえば 2018-01-21 が 2019-01-23 になっているように、それぞれの日付に1年と2日が正しく加算されていることが確認できます。
補足:入れ子にしない書き方
算術演算子「+」とINTERVALを組み合わせれば、関数を入れ子にせずに同じ結果を得ることも可能です。
mysql> select AdmissionDate + interval 1 year + interval 2 day AS AfterAddingOneYearTwoDays from DemoTable1376;
このようにINTERVALを使いこなすことで、MySQLでの日付計算を柔軟かつ簡潔に記述できるようになります。用途に応じて使い分けてみてください。
-
MySQLの1つのUPDATE文で2つの列を同時に更新する方法
はじめにMySQLでは、1つのUPDATE文の中でSET句を一度だけ使えば、複数の列を同時に更新できます。各列の指定はカンマ(,)で区切って記述します。この記事では、実際にテーブルを作成し、1つのクエリで2つの列(FirstNameとLastName)を更新する手順を解説します。サンプルテーブルの作成まず、以下のようにCREATE TABLE文でテーブルを作成します。mysql> create table DemoTable1909 ( Id int NOT NULL, FirstName varchar(20), LastName varchar(20)
-
MySQLで45日後の日付を計算し、新しい列として表示するクエリの書き方
MySQLで45日後の日付を新しい列に表示する方法 日付・時刻型の列に45日を加算し、その結果を元の列とは別の新しい列として表示したい場合は、date_add() 関数を使うのが最も簡単です。ここでは、テーブルの作成からデータの挿入、そして45日を加算するクエリの実行まで、手順を追って解説します。 1. テーブルを作成する まず、DATETIME型の列「DueTime」を持つテーブルを作成します。 mysql> create table DemoTable1930 ( DueTime datetime ); Query OK, 0 rows affected (