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

MySQL에서 TIME_FORMAT() 함수로 시간 필드의 초 제거하기

MySQL 시간 필드에서 초를 제거하는 방법

MySQL에서 시간(time) 필드에 저장된 값에서 초 단위를 제거하고 싶다면 TIME_FORMAT() 함수를 사용하면 됩니다. 이 함수는 지정한 형식 문자열에 따라 시간 값을 원하는 형태로 변환해 줍니다.

기본 문법

SELECT TIME_FORMAT(컬럼명1, "%H:%i") AS 별칭1,
TIME_FORMAT(컬럼명2, "%H:%i") AS 별칭2
FROM 테이블명;

여기서 %H는 24시간 형식의 '시', %i는 '분'을 의미합니다. 초에 해당하는 %s를 포함하지 않으면 결과에서 자동으로 초가 제거됩니다.

예제 테이블 생성

실제 동작을 확인하기 위해 먼저 예제용 테이블을 만들어 보겠습니다.

mysql> create table removeSecondsFromTime
    -> (
    -> Id int NOT NULL AUTO_INCREMENT,
    -> StartTime time,
    -> EndTime time,
    -> PRIMARY KEY(Id)
    -> );
Query OK, 0 rows affected (0.71 sec)

데이터 삽입

INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.

mysql> insert into removeSecondsFromTime(StartTime,EndTime) values('10:20:45','11:21:40');
Query OK, 1 row affected (0.43 sec)
mysql> insert into removeSecondsFromTime(StartTime,EndTime) values('12:30:55','13:20:21');
Query OK, 1 row affected (0.31 sec)
mysql> insert into removeSecondsFromTime(StartTime,EndTime) values('14:40:57','15:55:02');
Query OK, 1 row affected (0.24 sec)

저장된 데이터 확인

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

mysql> select *from removeSecondsFromTime;

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

+----+-----------+----------+
| Id | StartTime | EndTime  |
+----+-----------+----------+
|  1 | 10:20:45  | 11:21:40 |
|  2 | 12:30:55  | 13:20:21 |
|  3 | 14:40:57  | 15:55:02 |
+----+-----------+----------+
3 rows in set (0.00 sec)

현재 StartTime과 EndTime 컬럼에는 초 단위까지 저장되어 있는 것을 확인할 수 있습니다.

TIME_FORMAT()으로 초 제거하기

이제 TIME_FORMAT() 함수를 적용하여 시간 필드에서 초를 제거하는 쿼리를 실행해 보겠습니다.

mysql> select TIME_FORMAT(StartTime, "%H:%i") as StartingTime,
   -> TIME_FORMAT(EndTime, "%H:%i") as EndingTime
   -> from removeSecondsFromTime;

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

+--------------+------------+
| StartingTime | EndingTime |
+--------------+------------+
| 10:20        | 11:21      |
| 12:30        | 13:20      |
| 14:40        | 15:55      |
+--------------+------------+
3 rows in set (0.00 sec)

정리

위 결과에서 볼 수 있듯이, TIME_FORMAT() 함수에 %H:%i 형식을 지정하면 시간과 분만 표시되고 초는 자동으로 제거됩니다. 참고로 이 방법은 실제 데이터베이스에 저장된 값을 변경하는 것이 아니라 조회 결과에서만 초를 숨기는 것이므로, 원본 데이터는 그대로 유지된다는 점을 기억하세요.