Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL TIME_FORMAT() 함수로 시간 형식 HH:MM:SS를 HH:MM으로 변환하는 방법

MySQL에서 저장된 시간 값이 HH:MM:SS 형식일 때, 초 단위를 제외하고 HH:MM 형식만 표시하고 싶은 경우가 자주 있습니다. 이럴 때는 MySQL의 내장 함수인 TIME_FORMAT()을 사용하면 간단하게 해결할 수 있습니다.

TIME_FORMAT() 함수란?

TIME_FORMAT(time, format) 함수는 TIME 타입의 값을 지정한 형식 문자열에 맞춰 변환해 주는 함수입니다. 여기서 사용되는 주요 형식 지정자는 다음과 같습니다.

  • %H : 24시간제 기준의 시(00~23)
  • %i : 분(00~59)
  • %s : 초(00~59)

따라서 '%H:%i' 형식을 지정하면 시와 분만 출력됩니다.

예제 테이블 생성하기

먼저 예제로 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable1419
    -> (
    -> ArrivalTime time
    -> );
Query OK, 0 rows affected (0.78 sec)

테이블이 정상적으로 생성되었습니다. 이제 INSERT 명령어를 사용하여 시간 데이터를 몇 개 삽입해 보겠습니다.

mysql> insert into DemoTable1419 values('12:30:45');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1419 values('11:00:55');
Query OK, 1 row affected (0.45 sec)
mysql> insert into DemoTable1419 values('09:59:34');
Query OK, 1 row affected (0.16 sec)

저장된 데이터 확인하기

SELECT 문을 사용하여 테이블의 모든 레코드를 조회합니다.

mysql> select * from DemoTable1419;

실행 결과는 다음과 같습니다.

+-------------+
| ArrivalTime |
+-------------+
| 12:30:45    |
| 11:00:55    |
| 09:59:34    |
+-------------+
3 rows in set (0.00 sec)

현재까지는 모든 시간 값이 HH:MM:SS 형식으로 저장되어 있는 것을 확인할 수 있습니다.

HH:MM:SS를 HH:MM으로 변환하는 쿼리

이제 TIME_FORMAT() 함수를 활용하여 시간 형식을 HH:MM으로 변환하는 쿼리입니다.

mysql> select ArrivalTime, time_format(ArrivalTime,'%H:%i') from DemoTable1419;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+-------------+----------------------------------+
| ArrivalTime | time_format(ArrivalTime,'%H:%i') |
+-------------+----------------------------------+
| 12:30:45    | 12:30                          |
| 11:00:55    | 11:00                          |
| 09:59:34    | 09:59                          |
+-------------+----------------------------------+
3 rows in set (0.05 sec)

정리

TIME_FORMAT() 함수와 '%H:%i' 형식 지정자를 조합하면 MySQL에서 시간 값을 손쉽게 HH:MM 형식으로 변환할 수 있습니다. 원본 데이터는 그대로 유지되며, 조회 결과만 원하는 형식으로 표시되기 때문에 실무에서 화면 출력용 데이터를 가공할 때 매우 유용하게 활용됩니다.