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

MySQL에서 초를 제외한 시간 추출하기 – TIME_FORMAT() 함수 완벽 가이드

MySQL에서 저장된 시간(TIME) 값에서 초 단위를 제외하고 '시:분' 형식만 추출하고 싶다면 TIME_FORMAT() 함수를 사용하면 됩니다. 이 함수는 날짜 및 시간 형식 지정자를 활용해 원하는 형태로 시간 값을 손쉽게 변환해 줍니다.

아래에서 실제 테이블 생성부터 데이터 삽입, 그리고 초 없이 시간을 조회하는 전체 과정을 단계별로 살펴보겠습니다.

1. 샘플 테이블 생성

먼저 시간 값을 저장할 테이블을 만들어 보겠습니다.

mysql> create table DemoTable1326
-> (
-> Arrivaltime time
-> );
Query OK, 0 rows affected (0.50 sec)

2. 테스트 데이터 삽입

INSERT 명령어를 사용해 몇 개의 시간 데이터를 입력합니다.

mysql> insert into DemoTable1326 values('12:10:45');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1326 values('20:00:00');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable1326 values('22:45:55');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1326 values('04:10:24');
Query OK, 1 row affected (0.11 sec)

3. 저장된 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select * from DemoTable1326;

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

+-------------+
| Arrivaltime |
+-------------+
| 12:10:45 |
| 20:00:00 |
| 22:45:55 |
| 04:10:24 |
+-------------+
4 rows in set (0.00 sec)

4. 초를 제외한 시간 추출 쿼리

이제 핵심인 초 없이 시간만 추출하는 쿼리입니다. TIME_FORMAT() 함수에 %H:%i 형식 지정자를 사용하면 됩니다.

  • %H : 24시간 형식의 시(00~23)
  • %i : 분(00~59)
mysql> select time_format(Arrivaltime,'%H:%i') from DemoTable1326;

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

+----------------------------------+
| time_format(Arrivaltime,'%H:%i') |
+----------------------------------+
| 12:10 |
| 20:00 |
| 22:45 |
| 04:10 |
+----------------------------------+
4 rows in set (0.00 sec)

마무리

이처럼 MySQL의 TIME_FORMAT() 함수와 형식 지정자를 조합하면 초 단위를 제거하고 '시:분' 형태로 깔끔하게 시간을 출력할 수 있습니다. 참고로 오전/오후 표시가 필요하다면 %h:%i %p처럼 다른 형식 지정자를 활용할 수도 있으니, 상황에 맞게 응용해 보시기 바랍니다.