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() と比較して現在の日付のレコードを簡単に検索できます。
-
MySQLで現在の日付より前の日付データを抽出する方法
MySQLでは、NOW() 関数と比較演算子を使うことで、現在の日時より前の日付を持つレコードを簡単に抽出できます。この記事では、実際にテーブルを作成し、サンプルデータを登録したうえで、現在日時より過去の日付レコードを取得する手順を解説します。 1. サンプルテーブルの作成 まず、日付型(DATETIME)のカラムを持つテーブルを作成しましょう。 mysql> create table DemoTable1877 ( DueDate datetime ); Query OK, 0 rows affected (0.00 sec) 2. テストデータの挿入 次に、IN
-
MySQLで現在の日付と翌日のレコードを条件に特定の列を抽出する方法
MySQLでは、CURDATE()関数を使うことで、現在の日付やその翌日に該当するレコードを簡単に抽出できます。この記事では、実際のサンプルを使いながら、現在の日付と翌日の出荷日を持つレコードから特定の列を選択して取得する方法を解説します。 1. 現在の日付を確認する まず、curdate()関数で現在の日付を取得してみましょう。 mysql> select curdate(); 実行すると、以下のような結果が表示されます。 +------------+ | curdate() | +------------+ | 2019-12-15 | +------------+ 1 row