MySQL DATE_FORMAT()으로 시간을 AM/PM 형식으로 변환하기
MySQL에서 시간 값을 12시간제(오전/오후) 형식으로 표시하려면 DATE_FORMAT() 함수를 사용하면 됩니다. 특히 형식 지정자 %r을 활용하면 시간을 'hh:mm:ss AM/PM' 형태로 손쉽게 변환할 수 있습니다.
먼저 예제에 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable
(
LoginTime time
);
Query OK, 0 rows affected (0.48 sec)
1. 샘플 데이터 삽입
INSERT 명령을 사용해 테이블에 시간 데이터를 몇 개 삽입합니다.
mysql> insert into DemoTable values('13:10');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('20:08');
Query OK, 1 row affected (0.08 sec)
mysql> insert into DemoTable values('10:55');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('16:40');
Query OK, 1 row affected (0.11 sec)2. 저장된 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+-----------+
| LoginTime |
+-----------+
| 13:10:00 |
| 20:08:00 |
| 10:55:00 |
| 16:40:00 |
+-----------+
4 rows in set (0.00 sec)
3. %r 형식 지정자로 AM/PM 변환하기
다음은 DATE_FORMAT() 함수와 %r 형식 지정자를 사용해 시간을 오전(AM)/오후(PM) 형식으로 변환하는 쿼리입니다.
mysql> select date_format(LoginTime,'%r') from DemoTable;
실행 결과는 다음과 같습니다.
+-----------------------------+
| date_format(LoginTime,'%r') |
+-----------------------------+
| 01:10:00 PM |
| 08:08:00 PM |
| 10:55:00 AM |
| 04:40:00 PM |
+-----------------------------+
4 rows in set (0.00 sec)
%r 형식 지정자란?
%r은 MySQL에서 제공하는 날짜·시간 형식 지정자 중 하나로, 시간을 'hh:mm:ss AM' 또는 'hh:mm:ss PM' 형태의 12시간제 문자열로 반환합니다.
만약 초 단위 없이 '시:분 AM/PM' 형식만 원한다면 아래와 같이 여러 형식 지정자를 조합할 수도 있습니다.
mysql> select date_format(LoginTime,'%h:%i %p') from DemoTable;
-- 결과 예시: 01:10 PM, 08:08 PM, 10:55 AM, 04:40 PM
- %h : 두 자리 숫자의 시간 (01~12)
- %i : 두 자리 숫자의 분 (00~59)
- %p : 오전은 AM, 오후는 PM으로 표시
이처럼 DATE_FORMAT() 함수를 활용하면 MySQL의 시간 데이터를 다양한 형식으로 자유롭게 변환하여 출력할 수 있습니다.