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

MySQL에서 날짜/시간(DATETIME)을 변환해 월 이름만 추출하는 방법

MySQL에서 DATETIME 값에서 월 이름만 얻는 방법

MySQL에서 날짜/시간(datetime) 값에서 연도와 함께 월 이름만 추출하고 싶다면 DATE_FORMAT() 함수를 사용하면 됩니다. 기본 문법은 다음과 같습니다.

SELECT DATE_FORMAT(yourColumnName, '%M %Y') FROM yourTableName;

여기서 %M은 월의 전체 이름(예: October, December)을, %Y는 4자리 연도를 의미합니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> CREATE TABLE DemoTable1619
    -> (
    -> ArrivalTime DATETIME
    -> );
Query OK, 0 rows affected (0.45 sec)

2. 데이터 삽입하기

INSERT 명령을 사용하여 몇 개의 레코드를 삽입합니다.

mysql> INSERT INTO DemoTable1619 VALUES(NOW());
Query OK, 1 row affected (0.40 sec)
mysql> INSERT INTO DemoTable1619 VALUES(CURDATE());
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable1619 VALUES('2019-12-31');
Query OK, 1 row affected (0.17 sec)

위 쿼리에서 NOW()는 현재 날짜와 시간을, CURDATE()는 현재 날짜를 반환합니다.

3. 저장된 데이터 확인하기

SELECT 문을 사용하여 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> SELECT * FROM DemoTable1619;

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

+---------------------+
| ArrivalTime         |
+---------------------+
| 2019-10-20 15:02:12 |
| 2019-10-20 00:00:00 |
| 2019-12-31 00:00:00 |
+---------------------+
3 rows in set (0.00 sec)

4. DATE_FORMAT()으로 월 이름 변환하기

이제 DATETIME 값을 변환하여 월 이름을 가져오는 실제 쿼리입니다.

mysql> SELECT DATE_FORMAT(ArrivalTime, '%M %Y') FROM DemoTable1619;

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

+----------------------------------+
| DATE_FORMAT(ArrivalTime,'%M %Y') |
+----------------------------------+
| October 2019                     |
| October 2019                     |
| December 2019                    |
+----------------------------------+
3 rows in set (0.00 sec)

참고: 자주 사용하는 DATE_FORMAT 형식 지정자

상황에 따라 다양한 형식 지정자를 조합하여 사용할 수 있습니다.

  • %M — 월의 전체 이름 (예: January, December)
  • %b — 축약된 월 이름 (예: Jan, Dec)
  • %m — 숫자 형태의 월 (01~12)
  • %Y — 4자리 연도 (예: 2019)
  • %y — 2자리 연도 (예: 19)

예를 들어 'Oct 2019'처럼 축약된 형태가 필요하다면 DATE_FORMAT(ArrivalTime, '%b %Y')를 사용하면 됩니다. 이처럼 DATE_FORMAT() 함수 하나로 원하는 날짜 형식을 손쉽게 가공할 수 있습니다.