MySQLで指定した日付(2010-11-04)から現在の日付までのレコードを抽出する方法
MySQLでは、比較演算子 >= を使うことで、特定の日付から現在までの範囲にあるレコードを簡単に抽出できます。この記事では、サンプルテーブルの作成からデータの挿入、そして指定日(2010-11-04)以降のデータを取得するクエリまで、実際の実行例とともに順を追って解説します。
1. テーブルの作成
まず、日付型(DATE)カラムを持つテーブルを作成しましょう。
mysql> create table DemoTable
(
Joiningdate date
);
Query OK, 0 rows affected (0.56 sec)2. レコードの挿入
INSERTコマンドを使用して、複数の日付データを登録します。
mysql> insert into DemoTable values('2010-01-01');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('2010-03-31');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('2010-11-04');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable values('2012-12-31');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('2019-01-03');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('2016-04-05');
Query OK, 1 row affected (0.11 sec)3. 登録データの確認
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
実行結果は以下のとおりです。
+-------------+ | Joiningdate | +-------------+ | 2010-01-01 | | 2010-03-31 | | 2010-11-04 | | 2012-12-31 | | 2019-01-03 | | 2016-04-05 | +-------------+ 6 rows in set (0.00 sec)
4. 指定日(2010-11-04)以降のレコードを抽出するクエリ
以下が、指定した日付(2010-11-04)から現在までのレコードを取得するMySQLクエリです。ORDER BY を組み合わせることで、結果を日付順に整列させています。
mysql> select *from DemoTable where Joiningdate >='2010-11-04' order by Joiningdate;
実行結果は以下のとおりです。
+-------------+ | Joiningdate | +-------------+ | 2010-11-04 | | 2012-12-31 | | 2016-04-05 | | 2019-01-03 | +-------------+ 4 rows in set (0.00 sec)
補足:現在の日付を明示的に条件に含める方法
上記のクエリでも目的の結果は得られますが、テーブルに未来の日付が登録されている可能性がある場合は、CURDATE() 関数を使って「現在の日付以前」という条件を明示しておくとより安全です。
mysql> select *from DemoTable
-> where Joiningdate >= '2010-11-04'
-> and Joiningdate <= CURDATE()
-> order by Joiningdate;このように、比較演算子と日付関数を組み合わせれば、柔軟な期間検索を実現できます。ログデータや履歴データの集計など、実務でも頻繁に使われるテクニックなので、ぜひ覚えておきましょう。
-
JavaでMySQLのSELECTクエリにPreparedStatement(プリペアドステートメント)を使う方法
executeQuery()メソッドの基本的な使い方JavaからMySQLに対してSELECTクエリを実行する場合は、PreparedStatementオブジェクトのexecuteQuery()メソッドを使用します。基本構文は以下の通りです。yourPreparedStatementObject = yourConnectionObject.prepareStatement(yourQueryName);yourResultSetObject = yourPreparedStatementObject.executeQuery();それでは、実際にサンプルデータベース「sample」を使って手
-
JavaとMySQLで現在の日付に月数を追加する方法(INTERVAL句の使い方)
JavaとMySQLを組み合わせて現在の日付に月数を追加するには、INTERVAL句を使用します。以下がその基本構文です。 String query; query = insert into テーブル名 values(curdate()+interval 追加する月数 month); 現在の日付を確認する まず、curdate()関数を使って現在の日付を確認してみましょう。 mysql> select curdate(); +------------+ | curdate() | +------------+ | 2020-10-25 | +------------+ 1 row in