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

【MySQL入門】BETWEEN句で2つの日付間のログイン数をカウントする方法

MySQLでは、BETWEEN演算子を使用することで、指定した2つの日付の間にあるレコードを簡単に抽出できます。本記事では、実際にテーブルを作成し、日付範囲内のログイン数をカウントする手順を解説します。

1. サンプルテーブルを作成する

まず、ログイン日時を格納するためのテーブルを作成します。

mysql> create table DemoTable
(
    Login datetime
);
Query OK, 0 rows affected (0.66 sec)

2. テストデータを挿入する

次に、INSERT文を使ってサンプルデータを登録します。

mysql> insert into DemoTable values('2019-08-10');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('2019-08-12');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('2019-08-20');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('2019-08-24');
Query OK, 1 row affected (0.12 sec)

3. 登録されたレコードを確認する

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

mysql> select *from DemoTable;

実行すると、以下のような結果が出力されます。

+---------------------+
| Login               |
+---------------------+
| 2019-08-10 00:00:00 |
| 2019-08-12 00:00:00 |
| 2019-08-20 00:00:00 |
| 2019-08-24 00:00:00 |
+---------------------+
4 rows in set (0.00 sec)

4. BETWEEN句で日付範囲内の件数を取得する

ここからが本題です。BETWEENを使えば、開始日と終了日の両方を含む範囲でレコードを絞り込めます。以下が、2つの日付の間のログイン数を取得する正しいクエリです。

mysql> select count(*) from DemoTable where Login between '2019-08-12' and '2019-08-24';

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

+----------+
| count(*) |
+----------+
|        3 |
+----------+
1 row in set (0.05 sec)

結果の解説

このクエリでは、「2019-08-12」から「2019-08-24」までの範囲に含まれるレコードを対象としています。該当するのは「2019-08-12」「2019-08-20」「2019-08-24」の3件であるため、count(*)の結果は「3」となります。

なお、BETWEENは境界値(開始日・終了日)も範囲に含む点に注意してください。もし終了日を含めたくない場合は、>=<を組み合わせた条件式を使用するのがおすすめです。

  1. PHPで2つの日付間の日数を求める方法|date_diff関数の使い方を解説

    PHPでは、date_diff関数を使うことで、指定した2つの日付の差(日数)を簡単に求めることができます。この関数は組み込み関数であり、日数の差が正常に計算できた場合にはDateIntervalオブジェクトを返し、計算できなかった場合にはfalseを返します。 サンプルコード <?php $date_1 = date_create('23-11-2019'); $date_2 = date_create('22-1-2020'); $day_diff = date_diff($date_1, $date_2); echo $day_diff->f

  2. Pythonで2つの日付の間の日数を求める方法

    2つの日付の間の日数を求めるには、Pythonの標準ライブラリである datetime モジュールを使用します。datetime モジュールには日付を扱うための date クラスが用意されており、dateオブジェクト同士を減算すると、その差が timedelta オブジェクトとして返されます。このオブジェクトの days 属性を参照することで、日数を簡単に取得できます。手順1:必要なライブラリをインポートするまず、datetime モジュールから date クラスをインポートします。from datetime import date手順2:dateオブジェクトを作成する次に、日数を計算したい2