MySQLでNOW()から10日後以降の日付を表示する方法
はじめに
MySQLでは、DATE_ADD()関数をWHERE句と組み合わせることで、現在日時(NOW())から指定した日数後の日付データを簡単に抽出できます。この記事では、テーブルの作成からデータの挿入、そして「NOW() + 10日」より後の日付を表示するクエリの実行まで、手順を追って解説します。
サンプルテーブルの作成
まず、出荷日(ShippingDate)を格納するテーブルを作成しましょう。
mysql> create table DemoTable
(
ShippingDate date
);
Query OK, 0 rows affected (0.54 sec)
現在の日時を確認する
NOW()関数を使うと、現在の日付と時刻を取得できます。以下の例では、「2019-06-04 20:43:57」が現在日時です。
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2019-06-04 20:43:57 |
+---------------------+
1 row in set (0.00 sec)
テストデータの挿入
INSERT文を使って、いくつかのレコードをテーブルに追加します。
mysql> insert into DemoTable values('2019-06-16');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('2019-05-31');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('2019-05-24');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('2019-06-24');
Query OK, 1 row affected (0.17 sec)挿入したデータの確認
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
実行結果:
+--------------+
| ShippingDate |
+--------------+
| 2019-06-16 |
| 2019-05-31 |
| 2019-05-24 |
| 2019-06-24 |
+--------------+
4 rows in set (0.00 sec)
NOW() + 10日より後の日付を抽出するクエリ
以下のクエリでは、DATE_ADD()関数を使って現在日時に10日間を加算し、その日付より後のレコードだけを抽出しています。
mysql> select *from DemoTable where ShippingDate > DATE_ADD(now(), INTERVAL 10 DAY);
実行結果:
+--------------+
| ShippingDate |
+--------------+
| 2019-06-16 |
| 2019-06-24 |
+--------------+
2 rows in set (0.00 sec)
結果の解説
現在日時が「2019-06-04」なので、10日後は「2019-06-14」になります。したがって、それ以降の日付である「2019-06-16」と「2019-06-24」の2件が結果として表示されます。一方、「2019-05-31」と「2019-05-24」は基準日より前のため、除外されました。
なお、DATE_ADD()の代わりに「NOW() + INTERVAL 10 DAY」という書き方も可能です。また、過去の日付を基準にしたい場合は、DATE_SUB()関数や負のインターバルを利用すると便利です。
-
MySQLのストアドプロシージャでテーブルのレコードを表示する方法
MySQLでは、ストアドプロシージャ内にSELECT文を組み込むことで、テーブルのレコードを簡単に表示できます。ストアドプロシージャを活用すると、よく使うクエリを再利用可能な形で保存できるため、作業の効率化につながります。ここでは、実際の手順を順番に解説していきます。1. テーブルを作成するまず、サンプル用のテーブルを作成します。mysql> create table DemoTable1933 ( ClientName varchar(20) ); Query OK, 0 rows affected (0.00 sec)2. レコードを挿入する次に、INSERT
-
MySQLのGROUP BY句で日付をグループ化してレコードを表示する方法
MySQLで日付をグループ化する基本 MySQLで日付データをグループ化してレコードを表示するには、GROUP BY句を使用します。この記事では、顧客ごとに出荷日の最小値と最大値を取得する例を通じて、GROUP BY句の使い方を詳しく解説します。 1. サンプルテーブルの作成 まず、顧客名と出荷日を格納するテーブルを作成します。 mysql> create table DemoTable2002 ( CustomerName varchar(20), CustomerShippingDate datetime ); Query OK, 0 rows affected (