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

MySQL에서 타임스탬프(Timestamp)를 월(Month)로 변환하는 쿼리 작성법

MySQL에서 타임스탬프 값을 월로 변환하려면 FROM_UNIXTIME() 함수와 MONTH() 함수를 함께 사용하면 됩니다. 기본 문법은 다음과 같습니다.

SELECT MONTH(FROM_UNIXTIME(yourColumnName)) FROM yourTableName;

FROM_UNIXTIME()은 유닉스 타임스탬프를 날짜·시간 형식으로 변환하고, MONTH()는 그 결과에서 월에 해당하는 숫자(1~12)만 추출합니다.

1. 테이블 생성하기

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

mysql> CREATE TABLE DemoTable1457
    -> (
    -> Value BIGINT
    -> );
Query OK, 0 rows affected (0.85 sec)

타임스탬프 값은 범위가 크기 때문에 BIGINT 타입으로 컬럼을 정의했습니다.

2. 데이터 삽입하기

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

mysql> INSERT INTO DemoTable1457 VALUES(1570207117);
Query OK, 1 row affected (0.07 sec)
mysql> INSERT INTO DemoTable1457 VALUES(1548947534);
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable1457 VALUES(1575213134);
Query OK, 1 row affected (0.13 sec)

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

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

mysql> SELECT * FROM DemoTable1457;

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

+------------+
| Value      |
+------------+
| 1570207117 |
| 1548947534 |
| 1575213134 |
+------------+
3 rows in set (0.00 sec)

4. 타임스탬프를 월로 변환하는 쿼리

이제 FROM_UNIXTIME()과 MONTH()를 조합하여 타임스탬프를 월로 변환해 보겠습니다.

mysql> SELECT MONTH(FROM_UNIXTIME(Value)) FROM DemoTable1457;

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

+-----------------------------+
| MONTH(FROM_UNIXTIME(Value)) |
+-----------------------------+
|                          10 |
|                           1 |
|                          12 |
+-----------------------------+
3 rows in set (0.00 sec)

결과 해석

출력 결과를 보면 각 타임스탬프가 다음과 같은 월로 변환되었습니다.

  • 1570207117 → 10월 (2019년 10월 4일)
  • 1548947534 → 1월 (2019년 1월 31일)
  • 1575213134 → 12월 (2019년 12월 1일)

참고: 월 이름까지 함께 출력하기

월 이름(예: January, October)까지 확인하고 싶다면 MONTHNAME() 함수를 사용할 수 있습니다.

mysql> SELECT MONTHNAME(FROM_UNIXTIME(Value)) FROM DemoTable1457;

또한 AS 키워드를 활용하면 컬럼 별칭을 지정해 결과를 더 읽기 쉽게 만들 수 있습니다.

mysql> SELECT MONTH(FROM_UNIXTIME(Value)) AS MonthValue FROM DemoTable1457;

이처럼 MySQL에서는 FROM_UNIXTIME()과 MONTH() 함수의 조합만으로 유닉스 타임스탬프를 손쉽게 월 단위로 변환할 수 있습니다. 로그 데이터 분석이나 월별 통계 집계 시 매우 유용하게 활용됩니다.