MySQL의 DATE_FORMAT() 함수를 사용하여 월과 연도를 그룹화할 수 있습니다. GROUP BY 절도 사용됩니다.
구문은 다음과 같습니다 -
SELECT DATE_FORMAT(yourColumnName, '%m-%Y') from yourTableNameGROUP BY MONTH(yourColumnName), YEAR(yourColumnName)DESC;
위의 개념을 이해하기 위해 테이블을 만들어 보겠습니다. 다음은 테이블을 생성하는 쿼리입니다 -
mysql> Create table GroupMonthAndYearDemo −> ( −> DueDate datetime −> );쿼리 OK, 영향을 받은 행 0개(1.49초)
다음 쿼리를 사용하여 테이블에 레코드 삽입 -
mysql> Insert into GroupMonthAndYearDemo values(now());Query OK, 1행 영향(0.11초)mysql> Insert into GroupMonthAndYearDemo values(date_add(now(),interval 2 year));Query OK, 1행 영향 (0.12초)mysql> GroupMonthAndYearDemo 값에 삽입(date_add(now(),interval -2 year));Query OK, 영향을 받는 1개 행(0.10초)mysql> GroupMonthAndYearDemo 값에 삽입(date_add(now(),간격 1년) ));쿼리 확인, 1행 영향(0.16초)mysql> GroupMonthAndYearDemo 값에 삽입(date_add(now(),interval -1 year));쿼리 확인, 1행 영향(0.14초)
select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -
mysql> 선택 *GroupMonthAndYearDemo;
다음은 출력입니다 -
+---------------------+| 마감일 |+---------------------+| 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행 세트(0.00초)
월별, 연도별로 그룹화하는 쿼리는 다음과 같습니다. -
mysql> GroupMonthAndYearDemo에서 DATE_FORMAT(DueDate, '%m-%Y') 선택 -> GROUP BY MONTH(DueDate), YEAR(DueDate)DESC;
다음은 GROUP BY -
를 사용하여 그룹화된 월과 연도를 표시하는 출력입니다.+-------------------------------+| DATE_FORMAT(마감일, '%m-%Y') |+---------------------------------------------+| 2020년 12월 12일 || 2019년 12월 12일 || 2018년 12월 12일 || 2017년 12월 12일 || 2016년 12월 |+-------------------------------+5행 세트, 2개의 경고(0.00초)사전>