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

MySQLでSELECT *を使って現在の日付のレコードを検索する方法

現在の日付を取得するには CURDATE() 関数を使用します。さらに、STR_TO_DATE() 関数で文字列を日付型に変換し、現在の日付と比較することで、該当するレコードを抽出できます。以下に基本的な構文を示します。

基本構文

select *from テーブル名 where str_to_date(カラム名,'書式指定子')=curdate();

それでは、現在の日付が「27/10/2019」である場合を例に、具体的な手順を見ていきましょう。

1. テーブルの作成

まず、サンプル用のテーブルを作成します。

mysql> create table DemoTable
    -> (
    -> JoiningDate varchar(40)
    -> );
Query OK, 0 rows affected (0.79 sec)

2. レコードの挿入

INSERTコマンドを使って、テーブルに複数のレコードを挿入します。

mysql> insert into DemoTable values('27/10/2017');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('27/10/2018');
Query OK, 1 row affected (0.78 sec)
mysql> insert into DemoTable values('27/10/2019');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('27/10/2020');
Query OK, 1 row affected (0.11 sec)

3. レコードの確認

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

mysql> select *from DemoTable;

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

+-------------+
| JoiningDate |
+-------------+
| 27/10/2017  |
| 27/10/2018  |
| 27/10/2019  |
| 27/10/2020  |
+-------------+
4 rows in set (0.00 sec)

4. 現在の日付のレコードを検索する

次のクエリでは、STR_TO_DATE() を使って「日/月/年」形式の文字列を日付に変換し、CURDATE() の結果と比較しています。

mysql> select *from DemoTable where str_to_date(JoiningDate,'%d/%m/%Y')=curdate();

実行結果は以下の通りです。現在の日付(27/10/2019)に一致するレコードのみが抽出されました。

+-------------+
| JoiningDate |
+-------------+
| 27/10/2019  |
+-------------+
1 row in set (0.00 sec)

このように、VARCHAR型など文字列として保存された日付データでも、STR_TO_DATE() で適切な書式指定子(例:'%d/%m/%Y')を指定して変換すれば、CURDATE() と比較して現在の日付のレコードを簡単に検索できます。

  1. MySQLで現在の日付より前の日付データを抽出する方法

    MySQLでは、NOW() 関数と比較演算子を使うことで、現在の日時より前の日付を持つレコードを簡単に抽出できます。この記事では、実際にテーブルを作成し、サンプルデータを登録したうえで、現在日時より過去の日付レコードを取得する手順を解説します。 1. サンプルテーブルの作成 まず、日付型(DATETIME)のカラムを持つテーブルを作成しましょう。 mysql> create table DemoTable1877 ( DueDate datetime ); Query OK, 0 rows affected (0.00 sec) 2. テストデータの挿入 次に、IN

  2. MySQLで現在の日付と翌日のレコードを条件に特定の列を抽出する方法

    MySQLでは、CURDATE()関数を使うことで、現在の日付やその翌日に該当するレコードを簡単に抽出できます。この記事では、実際のサンプルを使いながら、現在の日付と翌日の出荷日を持つレコードから特定の列を選択して取得する方法を解説します。 1. 現在の日付を確認する まず、curdate()関数で現在の日付を取得してみましょう。 mysql> select curdate(); 実行すると、以下のような結果が表示されます。 +------------+ | curdate() | +------------+ | 2019-12-15 | +------------+ 1 row