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

MySQLで今日から月末までのレコードを抽出・表示する方法

MySQLで今日から月末までのレコードを表示する方法

MySQLで「現在の日付から当月の月末まで」のレコードを抽出したい場合、CURDATE()関数とLAST_DAY()関数をBETWEEN句と組み合わせることで簡単に実現できます。ここでは、サンプルテーブルを使いながら具体的な手順を解説します。

1. サンプルテーブルの作成

まず、デモ用のテーブルを作成しましょう。

mysql> create table DemoTable
(
    BookingDate date
);
Query OK, 0 rows affected (0.67 sec)

2. レコードの挿入

INSERTコマンドを使って、テーブルにいくつかのレコードを追加します。

mysql> insert into DemoTable values('2019-09-21');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('2018-09-10');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('2019-09-10');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('2019-09-08');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('2016-09-18');
Query OK, 1 row affected (0.17 sec)

3. 全レコードの確認

SELECT文で、テーブル内のすべてのレコードを表示して内容を確認しておきます。

mysql> select *from DemoTable;

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

+-------------+
| BookingDate |
+-------------+
| 2019-09-21  |
| 2018-09-10  |
| 2019-09-10  |
| 2019-09-08  |
| 2016-09-18  |
+-------------+
5 rows in set (0.00 sec)

4. 今日から月末までのレコードを抽出するクエリ

現在の日付から当月の月末までのレコードを取得するには、次のようにクエリを記述します。

mysql> select *from DemoTable where BookingDate between curdate() and last_day(curdate());

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

+-------------+
| BookingDate |
+-------------+
| 2019-09-21  |
| 2019-09-10  |
| 2019-09-08  |
+-------------+
3 rows in set (0.01 sec)

クエリのポイント

CURDATE()は現在の日付を返す関数、LAST_DAY()は引数に指定した日付が属する月の最終日を返す関数です。この2つをBETWEENで組み合わせることで、「今日から月末まで」の範囲に含まれるレコードだけを効率よく抽出できます。月ごとの予約データや売上データを集計する際などに、ぜひ活用してみてください。

  1. MySQLで特定のレコードを先頭に固定し、残りの行を元の順序のまま表示する方法

    MySQLでは、ORDER BY句を工夫して使うことで、特定の条件に一致するレコードを最上位に固定しつつ、それ以外のレコードを元の順序のまま表示できます。この記事では、その具体的な手順をサンプルコードとともに解説します。1. サンプルテーブルの作成まず、テーブルを作成します。mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> ); Query OK, 0 rows affected (0.82 sec)2. レコードの挿入次に、INSERTコマンド

  2. MySQLで日付データから月の初日と末日を取得する方法

    MySQLでは、日付型のカラムから「その月の最初の日」と「最後の日」を簡単に求めることができます。この記事では、実際にテーブルを作成し、サンプルデータを使いながら具体的な手順を解説します。1. テーブルの作成まず、日付を格納するためのテーブルを作成します。mysql> create table DemoTable -> ( -> DueDate date -> ); Query OK, 0 rows affected (0.73 sec)2. レコードの挿入次に、INSERT文を使ってテーブルにいくつかのレコードを挿入します。mysql>