MySQL에서 분 단위 정수(INT)를 TIME으로 변환하기
MySQL에서 분 단위로 저장된 정수(INT) 값을 TIME 형식으로 변환하려면 SEC_TO_TIME() 함수를 사용하면 됩니다. 이 함수는 초 단위의 숫자를 'HH:MM:SS' 형태의 시간 값으로 변환해 주기 때문에, 분 단위 값에 60을 곱한 뒤 전달하는 방식으로 활용할 수 있습니다.
기본 문법
SELECT SEC_TO_TIME(컬럼명 * 60) AS `별칭` FROM 테이블명;
분을 초로 바꾸려면 60을 곱하면 되므로, 위와 같이 컬럼 값에 60을 곱하여 SEC_TO_TIME()에 넘겨주는 것이 핵심입니다.
예제 테이블 생성
실제 동작을 확인하기 위해 먼저 테이블을 생성해 보겠습니다.
mysql> CREATE TABLE convertNumberToMinute
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> NumberToMinute int
-> );
Query OK, 0 rows affected (0.79 sec)샘플 데이터 삽입
INSERT 명령어를 사용하여 몇 개의 레코드를 추가합니다.
mysql> INSERT INTO convertNumberToMinute(NumberToMinute) VALUES(60); Query OK, 1 row affected (0.12 sec) mysql> INSERT INTO convertNumberToMinute(NumberToMinute) VALUES(70); Query OK, 1 row affected (0.21 sec) mysql> INSERT INTO convertNumberToMinute(NumberToMinute) VALUES(80); Query OK, 1 row affected (0.15 sec) mysql> INSERT INTO convertNumberToMinute(NumberToMinute) VALUES(90); Query OK, 1 row affected (0.13 sec) mysql> INSERT INTO convertNumberToMinute(NumberToMinute) VALUES(100); Query OK, 1 row affected (0.22 sec) mysql> INSERT INTO convertNumberToMinute(NumberToMinute) VALUES(110); Query OK, 1 row affected (0.07 sec) mysql> INSERT INTO convertNumberToMinute(NumberToMinute) VALUES(120); Query OK, 1 row affected (0.15 sec)
저장된 데이터 조회
SELECT 문으로 테이블의 모든 레코드를 확인합니다.
mysql> SELECT * FROM convertNumberToMinute;
실행 결과는 다음과 같습니다.
+----+----------------+ | Id | NumberToMinute | +----+----------------+ | 1 | 60 | | 2 | 70 | | 3 | 80 | | 4 | 90 | | 5 | 100 | | 6 | 110 | | 7 | 120 | +----+----------------+ 7 rows in set (0.00 sec)
SEC_TO_TIME()으로 TIME 변환하기
이제 분 단위 정수를 TIME 형식으로 변환하는 쿼리입니다. 컬럼 값에 60을 곱해 초로 변환한 후 SEC_TO_TIME()에 전달합니다.
mysql> SELECT SEC_TO_TIME(NumberToMinute*60) AS `MinuteDemo` FROM convertNumberToMinute;
실행 결과는 다음과 같습니다.
+------------+ | MinuteDemo | +------------+ | 01:00:00 | | 01:10:00 | | 01:20:00 | | 01:30:00 | | 01:40:00 | | 01:50:00 | | 02:00:00 | +------------+ 7 rows in set (0.00 sec)
결과를 보면 60은 '01:00:00', 120은 '02:00:00'처럼 각 분 값이 올바르게 시간 형식으로 변환된 것을 확인할 수 있습니다.
원본 값과 변환 값 함께 출력하기
원본 컬럼인 'NumberToMinute'와 변환된 결과를 함께 조회하고 싶다면 아래와 같이 쿼리를 작성하면 됩니다.
mysql> SELECT NumberToMinute, SEC_TO_TIME(NumberToMinute*60) AS `MinuteDemo` FROM convertNumberToMinute;
실행 결과는 다음과 같습니다.
+----------------+------------+ | NumberToMinute | MinuteDemo | +----------------+------------+ | 60 | 01:00:00 | | 70 | 01:10:00 | | 80 | 01:20:00 | | 90 | 01:30:00 | | 100 | 01:40:00 | | 110 | 01:50:00 | | 120 | 02:00:00 | +----------------+------------+ 7 rows in set (0.00 sec)
정리
MySQL에서 분 단위 정수를 TIME 형식으로 변환하는 것은 매우 간단합니다. 핵심은 SEC_TO_TIME(분 * 60) 패턴으로, 분을 초 단위로 변환한 뒤 SEC_TO_TIME() 함수에 넘겨주는 것입니다. 이 방법은 근무 시간 계산, 로그 분석 등 시간 데이터를 다루는 다양한 상황에서 유용하게 활용할 수 있습니다.