MySQL 테이블에 저장된 Epoch 값(유닉스 타임스탬프)은 숫자 형태이기 때문에 사람이 직접 읽기 어렵습니다. 이러한 값을 FROM_UNIXTIME() 함수를 사용하면 손쉽게 읽을 수 있는 날짜 및 시간 형식으로 변환할 수 있습니다.
FROM_UNIXTIME() 함수란?
FROM_UNIXTIME() 함수는 유닉스 타임스탬프(Epoch, 1970-01-01 00:00:00 UTC 기준 경과 초)를 'YYYY-MM-DD HH:MM:SS' 형식의 DATETIME 값으로 변환해 줍니다.
예제: visitors 테이블
다음 예제에서는 Epoch 값을 저장하는 'visitors'라는 이름의 테이블을 사용합니다.
mysql> Create table visitors(userid int not null, name varchar(20), epoch int NOT NULL); Query OK, 0 rows affected (0.42 sec) mysql> Insert into visitors Values(1, 'Gaurav', 1358658942); Query OK, 1 row affected (0.04 sec) mysql> Insert into visitors Values(2, 'Raman', 1358659585); Query OK, 1 row affected (0.04 sec)
Epoch를 날짜로 변환하여 조회하기
SELECT 문에서 FROM_UNIXTIME() 함수를 적용하면 다음과 같이 Epoch 값이 읽을 수 있는 날짜와 시간으로 출력됩니다.
mysql> Select userid, name, FROM_UNIXTIME(epoch) from visitors; +--------+--------+----------------------+ | userid | name | FROM_UNIXTIME(epoch) | +--------+--------+----------------------+ | 1 | Gaurav | 2013-07-24 16:05:42 | | 2 | Raman | 2013-07-24 16:16:25 | +--------+--------+----------------------+ 2 rows in set (0.00 sec)
참고 사항
FROM_UNIXTIME() 함수는 MySQL 서버의 타임존(time_zone) 설정에 따라 결과가 달라질 수 있습니다. 따라서 서버가 사용 중인 타임존을 확인하고, 필요하다면 CONVERT_TZ() 함수를 함께 사용하여 원하는 시간대의 날짜로 변환하는 것이 좋습니다.