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

MySQL에서 타임스탬프를 날짜·시간(DATETIME)으로 변환하는 방법

MySQL에서는 FROM_UNIXTIME() 함수를 사용하면 유닉스 타임스탬프(Unix Timestamp)를 손쉽게 날짜·시간 형식으로 변환할 수 있습니다. 이 글에서는 실제 예제를 통해 정수(int) 타입의 타임스탬프 값을 DATETIME으로 변환하고, 원하는 포맷으로 출력하는 방법까지 단계별로 살펴보겠습니다.

1. 테이블 생성하기

먼저 타임스탬프 값을 저장할 int 타입의 컬럼을 가진 테이블을 생성합니다.

mysql> create table TimestamptoDateDemo
   -> (
   ->  YourTimeStamp int(11)
   -> );
Query OK, 0 rows affected (0.57 sec)

2. 데이터 삽입 및 조회

테이블에 타임스탬프 값을 하나 삽입해 보겠습니다.

mysql> insert into TimestamptoDateDemo values(1389453221);
Query OK, 1 row affected (0.23 sec)

저장된 모든 레코드를 조회합니다.

mysql> select * from TimestamptoDateDemo;

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

+---------------+
| YourTimeStamp |
+---------------+
|    1389453221 |
+---------------+
1 row in set (0.00 sec)

3. FROM_UNIXTIME()으로 날짜·시간 변환하기

타임스탬프를 날짜·시간으로 변환하는 기본 문법은 다음과 같습니다.

SELECT from_unixtime(컬럼명) FROM 테이블명;

실제 쿼리를 실행해 보겠습니다.

mysql> select from_unixtime(YourTimeStamp) from TimestamptoDateDemo;

변환 결과가 표준 DATETIME 형식으로 출력됩니다.

+------------------------------+
| from_unixtime(YourTimeStamp) |
+------------------------------+
| 2018-09-11 20:43:41          |
+------------------------------+
1 row in set (0.04 sec)

4. 원하는 형식으로 포맷 지정하기

FROM_UNIXTIME() 함수의 두 번째 인자에 포맷 문자열을 넣으면, 원하는 스타일로 날짜와 시간을 표시할 수 있습니다.

select from_unixtime(컬럼명, '%Y %D %M %h:%i:%s') from 테이블명;

포맷이 적용된 결과입니다.

+---------------------------------------------------+
| from_unixtime(YourTimeStamp, '%Y %D %M %h:%i:%s') |
+---------------------------------------------------+
| 2018 11th September 08:43:41                      |
+---------------------------------------------------+
1 row in set (0.03 sec)

자주 사용하는 포맷 기호

  • %Y : 연도 (예: 2018)
  • %M : 월 이름 (예: September)
  • %D : 서수가 붙은 일 (예: 11th)
  • %h : 시 (12시간제)
  • %i : 분
  • %s : 초

이처럼 MySQL의 FROM_UNIXTIME() 함수를 활용하면 int 타입으로 저장된 타임스탬프 값을 기본 DATETIME 형식뿐 아니라 다양한 커스텀 포맷으로 자유롭게 변환할 수 있습니다.