MySQL의 DATE_FORMAT() 함수는 날짜와 시간 데이터를 원하는 형식으로 변환하여 출력할 수 있게 해주는 매우 유용한 함수입니다. 이 함수에는 다양한 형식 문자를 사용할 수 있으며, 그중 시간과 관련된 형식 문자들을 아래 표에서 확인할 수 있습니다.
| 시간 형식 문자 | 설명 |
|---|---|
| %H | 24시간제 기준으로 시(Hour)를 두 자리 숫자로 표시합니다. 예: 00, 01, 02 ~ 23 |
| %h | 12시간제 기준으로 시(Hour)를 두 자리 숫자로 표시합니다. 예: 01, 02 ~ 12 |
| %i | 분(Minutes)을 두 자리 숫자로 표시합니다. 예: 01, 02 ~ 59 |
| %l | 12시간제 기준으로 시(Hour)를 앞자리 0 없이 표시합니다. 예: 1, 2 ~ 12 |
| %p | 오전(AM) 또는 오후(PM)를 표시합니다. |
| %r | 12시간제 기준으로 시간을 HH:MM:SS 형식으로 표시합니다. |
| %s | 초(Seconds)를 두 자리 숫자로 표시합니다. 예: 01, 02 ~ 59 |
| %T | 24시간제 기준으로 시간을 HH:MM:SS 형식으로 표시합니다. |
| %f | 마이크로초(Microseconds)를 000000부터 999999 범위의 값으로 표시합니다. |
사용 예시
예를 들어, 현재 시간을 12시간제와 오전/오후 표기로 출력하고 싶다면 다음과 같이 작성할 수 있습니다.
SELECT DATE_FORMAT(NOW(), '%h:%i:%s %p');이 쿼리는 '05:30:45 PM'과 같은 형태의 결과를 반환합니다. 반대로 24시간제 형식이 필요하다면 %T 또는 %H:%i:%s 조합을 사용하면 됩니다.
이처럼 DATE_FORMAT() 함수의 시간 형식 문자를 적절히 조합하면 로그 기록, 보고서 생성 등 다양한 상황에서 원하는 시간 표현 방식을 손쉽게 구현할 수 있습니다.