MySQL에서 TIME 타입의 열에 저장된 시간에 새로운 지연 시간(delay time)을 추가하려면 INTERVAL 키워드와 DATE_ADD() 함수를 사용하면 됩니다. 실제 데이터를 변경하려면 UPDATE 명령문과 SET 절을 함께 활용할 수 있습니다. 아래에서 단계별로 살펴보겠습니다.
1. 테이블 생성
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable
(
DelayTime time
);
Query OK, 0 rows affected (1.21 sec)2. 레코드 삽입
INSERT 명령문으로 몇 개의 샘플 레코드를 삽입합니다.
mysql> insert into DemoTable values('11:30:10');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable values('12:40:00');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('05:45:24');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('09:00:10');
Query OK, 1 row affected (0.18 sec)3. 전체 레코드 조회
SELECT 문으로 테이블에 저장된 모든 레코드를 확인합니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+------------+ | DelayTime | +------------+ | 11 :30 :10 | | 12 :40 :00 | | 05 :45 :24 | | 09 :00 :10 | +------------+ 4 rows in set (0.00 sec)
4. 새로운 지연 시간 설정
다음은 DATE_ADD() 함수와 INTERVAL 키워드를 사용해 기존 시간에 10초를 더한 새로운 지연 시간을 계산하는 쿼리입니다.
mysql> select date_add(DelayTime,interval 10 second) AS `NewDelayTime` from DemoTable;
실행 결과는 다음과 같습니다.
+--------------+ | NewDelayTime | +--------------+ | 11 :30 :20 | | 12 :40 :10 | | 05 :45 :34 | | 09 :00 :20 | +--------------+ 4 rows in set (0.00 sec)
위 결과에서 확인할 수 있듯이 모든 DelayTime 값에 10초가 더해져 새로운 지연 시간이 출력됩니다. 이 방식은 원본 데이터는 그대로 두고 계산된 값만 보여줍니다. 만약 원본 데이터 자체를 갱신하고 싶다면 아래와 같이 UPDATE 명령문과 SET 절을 사용하면 됩니다.
mysql> update DemoTable set DelayTime = date_add(DelayTime, interval 10 second); Query OK, 4 rows affected (0.15 sec) Rows matched: 4 Changed: 4 Warnings: 0
이렇게 하면 테이블의 모든 행에 대해 DelayTime 열의 값이 실제로 10초씩 증가하여 저장됩니다. INTERVAL 키워드는 second 외에도 minute, hour, day 등 다양한 시간 단위를 지원하므로 상황에 맞게 활용하시기 바랍니다.