MySQL FROM_UNIXTIME() 함수란?
MySQL의 FROM_UNIXTIME() 함수는 유닉스 타임스탬프(Unix Timestamp) 값을 사람이 읽기 쉬운 날짜 또는 날짜·시간(Datetime) 형태로 변환해 주는 함수입니다. 데이터베이스에 저장된 타임스탬프 값을 실제 날짜로 확인하거나 표시할 때 매우 유용하게 사용됩니다.
반환되는 값의 형식은 함수가 사용된 문맥(context), 즉 숫자형으로 평가되는지 문자열로 평가되는지에 따라 다음과 같이 달라집니다.
- 문자열 문맥: 'YYYY-MM-DD HH:MM:SS' 형식 (예: 2019-04-12 07:14:30)
- 숫자 문맥: YYYYMMDDHHMMSS.uuuuuu 형식 (uuuuuu는 마이크로초 단위)
기본 문법
FROM_UNIXTIME(unix_timestamp, [format])
unix_timestamp는 변환하고자 하는 유닉스 타임스탬프 값이며, format은 선택적 인자로, 원하는 출력 형식을 지정하는 형식 문자열입니다. 두 번째 인자를 생략하면 기본 형식으로 결과가 반환됩니다.
사용 예시
다음은 유닉스 타임스탬프 1555033470을 날짜·시간 형식으로 변환하는 기본적인 예시입니다.
mysql> SELECT FROM_UNIXTIME(1555033470); +---------------------------+ | FROM_UNIXTIME(1555033470) | +---------------------------+ | 2019-04-12 07:14:30 | +---------------------------+ 1 row in set (0.00 sec)
위 결과에서 볼 수 있듯이, 타임스탬프 값이 'YYYY-MM-DD HH:MM:SS' 형태의 날짜와 시간으로 변환되어 반환됩니다.
형식 문자열 활용하기
두 번째 인자에 형식 지정자를 사용하면 원하는 모양으로 자유롭게 출력할 수 있습니다. 주요 지정자로는 %Y(연도), %m(월), %d(일), %H(시), %i(분), %s(초) 등이 있습니다.
mysql> SELECT FROM_UNIXTIME(1555033470, '%Y년 %m월 %d일 %H시 %i분'); +--------------------------------------------------------+ | FROM_UNIXTIME(1555033470, '%Y년 %m월 %d일 %H시 %i분') | +--------------------------------------------------------+ | 2019년 04월 12일 07시 14분 | +--------------------------------------------------------+ 1 row in set (0.00 sec)
이처럼 FROM_UNIXTIME() 함수는 단순 변환뿐 아니라 형식 지정자를 조합하여 보고서나 화면 출력에 바로 쓸 수 있는 형태로 가공할 수 있어 실무에서 활용도가 높습니다.