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

MySQL에서 분 단위 INT 값을 TIME 형식으로 변환하는 방법 – SEC_TO_TIME() 함수 활용

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() 함수에 넘겨주는 것입니다. 이 방법은 근무 시간 계산, 로그 분석 등 시간 데이터를 다루는 다양한 상황에서 유용하게 활용할 수 있습니다.