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

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;

このように、比較演算子と日付関数を組み合わせれば、柔軟な期間検索を実現できます。ログデータや履歴データの集計など、実務でも頻繁に使われるテクニックなので、ぜひ覚えておきましょう。

  1. JavaでMySQLのSELECTクエリにPreparedStatement(プリペアドステートメント)を使う方法

    executeQuery()メソッドの基本的な使い方JavaからMySQLに対してSELECTクエリを実行する場合は、PreparedStatementオブジェクトのexecuteQuery()メソッドを使用します。基本構文は以下の通りです。yourPreparedStatementObject = yourConnectionObject.prepareStatement(yourQueryName);yourResultSetObject = yourPreparedStatementObject.executeQuery();それでは、実際にサンプルデータベース「sample」を使って手

  2. 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