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

MySQL INTERVAL과 DATE_ADD()로 열에 새로운 지연 시간 설정하기

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 등 다양한 시간 단위를 지원하므로 상황에 맞게 활용하시기 바랍니다.