MySQL의 FROM_UNIXTIME() 함수는 UNIX 타임스탬프를 사람이 읽기 쉬운 날짜·시간 값으로 변환해 주는 유용한 함수입니다. 만약 결과값을 원하는 특정 형식으로 출력하고 싶다면, 두 번째 인수로 날짜 형식 문자열, 시간 형식 문자열 또는 둘 모두를 지정할 수 있습니다.
1. 날짜 형식 문자열만 사용한 경우
mysql> Select FROM_UNIXTIME(1555033470, '%Y %M %D') AS 'Formatted Output'; +------------------+ | Formatted Output | +------------------+ | 2019 April 12th | +------------------+ 1 row in set (0.00 sec)
위 쿼리에서는 날짜 형식 문자열만 사용했습니다. %Y는 4자리 연도, %M은 월의 영문 이름, %D는 서수 접미사가 붙은 일(12th)을 의미합니다.
2. 시간 형식 문자열만 사용한 경우
mysql> Select FROM_UNIXTIME(1555033470, '%h:%i:%s') AS 'Formatted Output'; +------------------+ | Formatted Output | +------------------+ | 07:14:30 | +------------------+ 1 row in set (0.00 sec)
위 쿼리에서는 시간 형식 문자열만 사용했습니다. %h는 12시간제 시간, %i는 분, %s는 초를 나타냅니다.
3. 날짜와 시간 형식 문자열을 함께 사용한 경우
mysql> Select FROM_UNIXTIME(1555033470, '%Y %M %D %h:%i:%s') AS 'Formatted Output'; +--------------------------+ | Formatted Output | +--------------------------+ | 2019 April 12th 07:14:30 | +--------------------------+ 1 row in set (0.00 sec)
위 쿼리에서는 날짜 형식 문자열과 시간 형식 문자열을 모두 조합하여 사용했습니다.
자주 사용되는 형식 지정자 정리
- %Y: 4자리 연도 (예: 2019)
- %M: 월의 전체 영문 이름 (예: April)
- %D: 영어 서수 접미사가 붙은 일 (예: 12th)
- %d: 두 자리 숫자로 표현된 일 (예: 12)
- %H: 24시간제 시간, %h: 12시간제 시간
- %i: 분 (00~59)
- %s: 초 (00~59)
이처럼 FROM_UNIXTIME() 함수에 형식 문자열을 조합하면 로그 기록, 리포트 생성 등 다양한 상황에서 원하는 형태로 날짜와 시간을 손쉽게 출력할 수 있습니다.