MySQLで現在の日付に登録したユーザー数を取得する方法
はじめに
MySQLで「現在の日付に登録されたユーザーの数」を取得したい場合は、COUNT()関数とGROUP BY MONTH()を組み合わせます。現在の日付との比較には、CURRENT_DATE()(またはCURDATE())を使用します。
現在の日付を確認する
まず、現在の日付を確認しておきましょう。CURDATE()関数を使うと、今日の日付を簡単に取得できます。
mysql> select curdate() ; +------------+ | curdate() | +------------+ | 2019-11-30 | +------------+ 1 row in set (0.00 sec)
この例では、現在の日付が「2019-11-30」と表示されています。
サンプルテーブルの作成
動作確認用に、名前と登録日時を格納するテーブルを作成します。
mysql> create table DemoTable1819
(
Name varchar(20),
RegisteringDate datetime
);
Query OK, 0 rows affected (0.00 sec)
Name(名前)とRegisteringDate(登録日時)の2つのカラムを持つシンプルな構成です。
テストデータの挿入
INSERTコマンドで、いくつかのレコードを追加していきます。
mysql> insert into DemoTable1819 values('Chris','2019-11-29 12:30:34');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1819 values('David','2019-11-30 12:30:34');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1819 values('Mike','2019-12-30 12:30:34');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1819 values('Sam','2018-11-30 11:00:00');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1819 values('Carol','2019-11-30 10:00:00');
Query OK, 1 row affected (0.00 sec)
登録データの確認
SELECT文で、テーブル内の全レコードを表示してみましょう。
mysql> select * from DemoTable1819;
実行結果は以下の通りです。
+-------+---------------------+ | Name | RegisteringDate | +-------+---------------------+ | Chris | 2019-11-29 12:30:34 | | David | 2019-11-30 12:30:34 | | Mike | 2019-12-30 12:30:34 | | Sam | 2018-11-30 11:00:00 | | Carol | 2019-11-30 10:00:00 | +-------+---------------------+ 5 rows in set (0.00 sec)
現在の日付に登録した人数を取得するクエリ
それでは本題です。当日に登録したユーザーの件数を取得するには、次のようなクエリを実行します。
mysql> select count(RegisteringDate) as Output from DemoTable1819 WHERE DATE(RegisteringDate) = CURDATE() GROUP BY MONTH(RegisteringDate);
実行結果:
+--------+ | Output | +--------+ | 2 | +--------+ 1 row in set (0.00 sec)
クエリのポイント解説
- DATE(RegisteringDate) = CURDATE():
DATE()関数でdatetime型から日付部分だけを抽出し、現在の日付と比較しています。時刻の影響を受けずに正確に判定できるのがポイントです。 - COUNT(RegisteringDate):条件に一致したレコードの件数をカウントします。
- GROUP BY MONTH(RegisteringDate):月単位でグループ化することで、月ごとの集計にも対応できます。
この結果から、「2019-11-30」に登録したのはDavidとCarolの2人であることがわかります。
まとめ
MySQLで当日の登録者数を取得するには、COUNT()・DATE()・CURDATE()を組み合わせるのが最も手軽な方法です。管理画面のダッシュボードや日次レポートなど、毎日の登録状況を把握したい場面でぜひ活用してみてください。
-
MySQLのフィールドに現在の日付を設定する方法(UNIX_TIMESTAMP(now)の使い方)
MySQLでは、unix_timestamp()関数を使うことで、現在の日時をUNIXタイムスタンプとして取得し、テーブルのフィールドに簡単に設定できます。この記事では、実際にテーブルを作成し、現在の日付(UNIXタイムスタンプ)をフィールドに設定する手順を解説します。UNIXタイムスタンプとはUNIXタイムスタンプとは、1970年1月1日00:00:00 UTCからの経過秒数を表す数値です。日時を整数として扱えるため、比較や計算が容易になり、データベースでの時間管理によく利用されます。サンプルテーブルの作成まず、以下のようにCREATE TABLE文でテーブルを作成します。mysql>
-
MySQLでテーブルの日付レコードを変更する方法|UPDATEとDATE_ADD()の使い方
MySQLで保存済みの日付データに年数を加算して変更したい場合、UPDATEコマンドとDATE_ADD()関数を組み合わせることで簡単に実現できます。ここでは、実際のSQLクエリ例を使いながら、日付レコードを変更する手順を順番に解説します。1. テーブルを作成するまず、日付型(date)のカラムを持つテーブルを作成します。mysql> create table DemoTable1984 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec)2. レコードを挿入する次に、INSERTコマンドを使ってテ