【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は境界値(開始日・終了日)も範囲に含む点に注意してください。もし終了日を含めたくない場合は、>=と<を組み合わせた条件式を使用するのがおすすめです。
-
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
-
Pythonで2つの日付の間の日数を求める方法
2つの日付の間の日数を求めるには、Pythonの標準ライブラリである datetime モジュールを使用します。datetime モジュールには日付を扱うための date クラスが用意されており、dateオブジェクト同士を減算すると、その差が timedelta オブジェクトとして返されます。このオブジェクトの days 属性を参照することで、日数を簡単に取得できます。手順1:必要なライブラリをインポートするまず、datetime モジュールから date クラスをインポートします。from datetime import date手順2:dateオブジェクトを作成する次に、日数を計算したい2