在 MySQL 中分組月份和年份?


藉助 MySQL 中的 DATE_FORMAT() 函式,你可以對月份和年份進行分組。還使用 GROUP BY 子句。

語法如下 −

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;

以下是顯示按 GROUP BY 分組的月份和年份的輸出 −

+-------------------------------+
| DATE_FORMAT(DueDate, '%m-%Y') |
+-------------------------------+
| 12-2020                       |
| 12-2019                       |
| 12-2018                       |
| 12-2017                       |
| 12-2016                       |
+-------------------------------+
5 rows in set, 2 warnings (0.00 sec)

更新於: 2019 年 7 月 30 日

5000+ 瀏覽次數

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.