MySQL에서 시간(TIME) 데이터를 HH:MM 형식으로만 표시하고 싶다면 DATE_FORMAT() 함수를 사용하면 됩니다. MySQL의 TIME 타입은 기본적으로 'HH:MM:SS' 형태로 저장되기 때문에, 초 단위를 제외한 시:분 형태로 출력하려면 별도의 포맷팅 작업이 필요합니다.
DATE_FORMAT() 기본 문법
SELECT DATE_FORMAT(컬럼명, "%H:%i") AS 별칭 FROM 테이블명;
예제: 테이블 생성 및 데이터 삽입
먼저 예제로 사용할 테이블을 생성합니다.
mysql> CREATE TABLE DemoTable (
Arrivaltime TIME
);
Query OK, 0 rows affected (0.61 sec)
INSERT 명령어로 시간 데이터를 입력합니다.
mysql> INSERT INTO DemoTable VALUES('08:20');
Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO DemoTable VALUES('05:40');
Query OK, 1 row affected (0.12 sec)저장된 데이터 확인하기
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> SELECT * FROM DemoTable;
실행 결과는 다음과 같습니다.
+-------------+
| Arrivaltime |
+-------------+
| 08:20:00 |
| 05:40:00 |
+-------------+
2 rows in set (0.00 sec)
TIME 타입은 위 결과처럼 초 단위(:00)까지 함께 출력되는 것을 확인할 수 있습니다.
HH:MM 형식으로만 출력하기
이제 DATE_FORMAT() 함수를 사용해 시와 분만 표시하는 쿼리입니다.
mysql> SELECT DATE_FORMAT(Arrivaltime, "%H:%i") AS ONLY_HOUR_MINUTE FROM DemoTable;
실행 결과:
+------------------+
| ONLY_HOUR_MINUTE |
+------------------+
| 08:20 |
| 05:40 |
+------------------+
2 rows in set (0.03 sec)
주요 형식 지정자 정리
- %H : 24시간 형식의 시(00~23)
- %h : 12시간 형식의 시(01~12)
- %i : 분(00~59)
- %s : 초(00~59)
참고로 DATE_FORMAT()은 조회 결과가 화면에 보이는 형식만 변경할 뿐, 실제 컬럼에 저장된 값은 그대로 유지됩니다. 만약 저장 단계부터 HH:MM 형태로 관리하고 싶다면 VARCHAR 타입 사용을 고려하거나, 애플리케이션 레벨에서 포맷팅을 처리하는 방법도 있습니다.