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

MySQLで月と年をグループ化しますか?


MySQLの関数DATE_FORMAT()を使用して、月と年をグループ化できます。 GROUPBY句も使用されます。

構文は次のとおりです-

SELECT DATE_FORMAT(yourColumnName, '%m-%Y') from yourTableName
GROUP BY MONTH(yourColumnName), YEAR(yourColumnName)DESC;

上記の概念を理解するために、テーブルを作成しましょう。以下は、テーブルを作成するためのクエリです-

mysql> create table GroupMonthAndYearDemo
   −> (
   −> DueDate datetime
   −> );
Query OK, 0 rows affected (1.49 sec)

次のクエリを使用してテーブルにレコードを挿入します-

mysql> insert into GroupMonthAndYearDemo values(now());
Query OK, 1 row affected (0.11 sec)

mysql> insert into GroupMonthAndYearDemo values(date_add(now(),interval 2 year));
Query OK, 1 row affected (0.12 sec)

mysql> insert into GroupMonthAndYearDemo values(date_add(now(),interval -2 year));
Query OK, 1 row affected (0.10 sec)

mysql> insert into GroupMonthAndYearDemo values(date_add(now(),interval 1 year));
Query OK, 1 row affected (0.16 sec)

mysql> insert into GroupMonthAndYearDemo values(date_add(now(),interval -1 year));
Query OK, 1 row affected (0.14 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-

mysql> select *from GroupMonthAndYearDemo;

以下は出力です-

+---------------------+
| DueDate             |
+---------------------+
| 2018-12-06 13:12:34 |
| 2020-12-06 13:12:59 |
| 2016-12-06 13:13:08 |
| 2019-12-06 13:13:14 |
| 2017-12-06 13:13:19 |
+---------------------+
5 rows in set (0.00 sec)

月と年でグループ化するクエリは次のとおりです-

mysql> select DATE_FORMAT(DueDate, '%m-%Y') from GroupMonthAndYearDemo 
   −> GROUP BY MONTH(DueDate) , YEAR(DueDate)DESC;

以下は、GROUPBY-

を使用してグループ化された月と年を表示する出力です。
+-------------------------------+
| DATE_FORMAT(DueDate, '%m-%Y') |
+-------------------------------+
| 12-2020                       |
| 12-2019                       |
| 12-2018                       |
| 12-2017                       |
| 12-2016                       |
+-------------------------------+
5 rows in set, 2 warnings (0.00 sec)

  1. タイムスタンプを月に変換するMySQLクエリ?

    タイムスタンプを月に変換するには、次の構文のようにFROM_UNIXTIME()メソッドを使用します- select month(from_unixtime(yourColumnName)) from yourTableName; まずテーブルを作成しましょう- mysql> create table DemoTable1457    -> (    -> Value bigint    -> ); Query OK, 0 rows affected (0.85 sec) 挿入コマンド-を使用して、テーブル

  2. MySQLは特定の月と年に基づいてレコードをフェッチしますか?

    これには、MONTH()とYEAR()を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1846      (      PurchaseDate date      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1846 values('2019-01-10');