Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 날짜의 월(Month) 부분만 추출하는 방법 – DATE_FORMAT() 활용 가이드

MySQL에서 날짜의 월(Month) 부분만 추출하는 방법

날짜 데이터에서 월 부분만 따로 가져오고 싶다면 DATE_FORMAT() 함수를 사용하면 됩니다. 이 함수는 날짜 값을 지정한 형식 문자열에 맞춰 변환해 주는데, %M은 월의 영문 이름(June, January 등), %m은 두 자리 숫자 형태의 월(06, 01 등)을 반환합니다.

1. 테이블 생성하기

먼저 예제로 사용할 테이블을 생성합니다.

mysql> create table DemoTable753 (DueDate datetime);
Query OK, 0 rows affected (0.51 sec)

2. 샘플 데이터 삽입하기

INSERT 명령으로 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable753 values('2019-06-21');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable753 values('2019-01-31');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable753 values('2018-12-01');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable753 values('2016-11-11');
Query OK, 1 row affected (0.23 sec)

3. 저장된 레코드 확인하기

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable753;

실행 결과는 다음과 같습니다.

+---------------------+
| DueDate |
+---------------------+
| 2019-06-21 00:00:00 |
| 2019-01-31 00:00:00 |
| 2018-12-01 00:00:00 |
| 2016-11-11 00:00:00 |
+---------------------+
4 rows in set (0.00 sec)

4. 월 부분만 추출하는 쿼리

다음 쿼리는 DATE_FORMAT() 함수를 이용해 날짜에서 월 이름과 두 자리 숫자 월을 함께 조회합니다.

mysql> select date_format(DueDate,'%M'),date_format(DueDate,'%m') from DemoTable753;

실행 결과는 다음과 같습니다.

+---------------------------+---------------------------+
| date_format(DueDate,'%M') | date_format(DueDate,'%m') |
+---------------------------+---------------------------+
| June | 06 |
| January | 01 |
| December | 12 |
| November | 11 |
+---------------------------+---------------------------+
4 rows in set (0.00 sec)

참고: MONTH() 함수로 숫자 월만 얻기

월 이름 없이 숫자 값만 필요하다면 MONTH() 함수를 사용할 수도 있습니다. 예를 들어 SELECT MONTH(DueDate) FROM DemoTable753;을 실행하면 6, 1, 12, 11처럼 정수형 월 값이 반환됩니다. 정렬이나 비교 연산에는 숫자 형태가 더 유용하니, 용도에 맞게 두 방법을 선택해 사용하시기 바랍니다.