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

MySQLで日付が過ぎたかどうかを確認する方法【CURDATE()の使い方】

MySQLでは、CURDATE()関数(現在の日付を返す関数)と比較演算子を組み合わせることで、特定の日付がすでに過ぎているかどうかを簡単に判定できます。この記事では、サンプルテーブルを作成し、実際に日付の経過を確認する手順を段階的に解説します。

1. サンプルテーブルを作成する

まず、DATE型のカラムを持つテーブルを作成します。

mysql> create table DemoTable1340
   &;-> (
   &;-> Deadline date
   &;-> );
Query OK, 0 rows affected (0.43 sec)

2. レコードを挿入する

INSERTコマンドを使って、複数の日付データを登録します。

mysql> insert into DemoTable1340 values('2019-09-18');
Query OK, 1 row affected (0.52 sec)
mysql> insert into DemoTable1340 values('2019-09-23');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1340 values('2018-12-24');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1340 values('2016-11-01');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1340 values('2019-09-28');
Query OK, 1 row affected (0.18 sec)

3. 登録したレコードを確認する

SELECT文ですべてのレコードを表示してみましょう。

mysql> select * from DemoTable1340;

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

+------------+
| Deadline   |
+------------+
| 2019-09-18 |
| 2019-09-23 |
| 2018-12-24 |
| 2016-11-01 |
| 2019-09-28 |
+------------+
5 rows in set (0.00 sec)

4. 現在の日付を確認する

判定の基準となる現在の日付も把握しておきましょう。CURDATE()関数で取得できます。

mysql> select curdate();
+------------+
| curdate()  |
+------------+
| 2019-09-21 |
+------------+
1 row in set (0.00 sec)

5. 日付が過ぎたかどうかを判定するクエリ

以下のクエリを実行すると、現在の日付以降(まだ期限が来ていない)のレコードだけを抽出できます。

mysql> select * from DemoTable1340 where Deadline >= curdate();

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

+------------+
| Deadline   |
+------------+
| 2019-09-23 |
| 2019-09-28 |
+------------+
2 rows in set (0.00 sec)

結果の解説

Deadline >= curdate()という条件により、現在の日付(2019-09-21)以降の日付を持つ「2019-09-23」と「2019-09-28」の2件のみが表示されました。つまり、これらはまだ期限が来ていないレコードです。

逆に、すでに過ぎた日付(期限切れ)のレコードだけを抽出したい場合は、比較演算子を変更してWHERE Deadline < CURDATE()とすればOKです。状況に応じて><=などを使い分けることで、柔軟に日付の判定が行えます。

  1. MySQLで現在選択中のデータベースを確認する方法|DATABASE()関数とstatusコマンドの使い方

    MySQLに接続している際、「今どのデータベースを選択しているのか」を確認したい場面はよくあります。この記事では、DATABASE()関数やstatusコマンドを使って、現在選択中のデータベース名を簡単に確認する方法を解説します。 DATABASE()関数で選択中のデータベースを確認する MySQLでは、DUALテーブルに対してDATABASE()関数を実行することで、現在選択されているデータベース名を取得できます。 手順1:データベースを選択する まず、例として「business」というデータベースを選択してみましょう。以下のコマンドを実行します。 mysql> use busi

  2. MySQLのバージョンを確認する方法をわかりやすく解説

    この記事では、現在利用しているMySQLサーバーのバージョンを確認する方法について詳しく解説します。コンソールでクエリを実行する前に、まずクライアントがサーバーに正しく接続されていることを確認しておきましょう。接続が確立されていないと、クエリを実行しても結果を取得できません。MySQLのバージョンを確認する基本クエリ以下のクエリを実行すると、使用中のサーバーのバージョン番号と、実行時点の日付を同時に取得できます。mysql> SELECT VERSION(), CURRENT_DATE;ポイント: 関数「VERSION()」や「CURRENT_DATE」は大文字・小文字を区別しません。つ