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

MySQL DATE 타임스탬프를 변환해 월 번호만 반환하는 방법

타임스탬프 값에서 월 번호만 추출하고 싶다면 MySQL의 DATE_FORMAT() 함수를 사용하면 됩니다. 이 함수는 날짜 형식 지정자를 활용해 원하는 부분만 손쉽게 가져올 수 있습니다.

1. 테이블 생성하기

먼저 TIMESTAMP 타입의 컬럼을 가진 테이블을 생성합니다.

mysql> create table DemoTable1999
    (
    ArrivalDate timestamp
    );
Query OK, 0 rows affected (0.66 sec)

2. 샘플 데이터 삽입하기

INSERT 명령을 사용해 몇 개의 레코드를 테이블에 추가합니다.

mysql> insert into DemoTable1999 values('2019-01-01 12:34:00');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1999 values('2019-12-31 10:04:00');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1999 values('2018-10-11 04:04:30');
Query OK, 1 row affected (0.14 sec)

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

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select * from DemoTable1999;

위 쿼리는 다음과 같은 결과를 출력합니다.

+---------------------+
| ArrivalDate         |
+---------------------+
| 2019-01-01 12:34:00 |
| 2019-12-31 10:04:00 |
| 2018-10-11 04:04:30 |
+---------------------+
3 rows in set (0.00 sec)

4. 월 번호만 반환하는 쿼리

이제 DATE_FORMAT() 함수에 형식 지정자 %m을 적용해 월 번호만 반환하는 쿼리를 작성합니다.

mysql> select date_format(ArrivalDate,'%m') as MonthName from DemoTable1999;

실행 결과는 아래와 같습니다.

+-----------+
| MonthName |
+-----------+
| 01        |
| 12        |
| 10        |
+-----------+
3 rows in set (0.00 sec)

참고: 월 이름이 필요한 경우

월 번호가 아닌 월 이름(예: January, December)을 얻고 싶다면 형식 지정자 %M을 대신 사용하면 됩니다. 또한 MONTH() 함수를 활용하면 01처럼 앞자리 0이 붙지 않은 숫자 형태(1, 12, 10)로 월 번호를 받을 수 있으니 상황에 맞게 선택하세요.