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

MySQL DATETIME 컬럼 업데이트: 기존 데이터에 10년 3개월 22일 10시간 30분 더하는 방법

MySQL에서 DATETIME 컬럼의 기존 값을 유지하면서 특정 기간을 더해 업데이트해야 하는 경우가 있습니다. 예를 들어 기존 날짜·시간 데이터에 10년 3개월 22일 10시간 30분을 추가하고 싶다면 INTERVAL 키워드를 활용하면 됩니다. 이 글에서는 테이블 생성부터 업데이트, 결과 확인까지 전 과정을 단계별로 살펴보겠습니다.

1. 테이블 생성

먼저 DATETIME 타입의 컬럼을 가진 테이블을 생성합니다.

mysql> create table DemoTable1509
    -> (
    -> ArrivalTime datetime
    -> );
Query OK, 0 rows affected (0.51 sec)

2. 샘플 데이터 삽입

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

mysql> insert into DemoTable1509 values('2018-01-21 10:20:30');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1509 values('2019-04-01 11:00:00');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1509 values('2015-12-12 05:45:20');
Query OK, 1 row affected (0.15 sec)

3. 현재 데이터 확인

SELECT 문으로 저장된 모든 레코드를 조회합니다.

mysql> select * from DemoTable1509;

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

+---------------------+
| ArrivalTime          |
+---------------------+
| 2018-01-21 10:20:30 |
| 2019-04-01 11:00:00 |
| 2015-12-12 05:45:20 |
+---------------------+
3 rows in set (0.00 sec)

4. INTERVAL로 날짜·시간 더하기

기존 DATETIME 값에 10년, 3개월, 22일, 10시간, 30분을 각각 더하는 UPDATE 쿼리입니다. INTERVAL 구문을 덧셈(+) 연산자로 연결하면 여러 시간 단위를 한 번에 적용할 수 있습니다.

mysql> update DemoTable1509
    -> set ArrivalTime=ArrivalTime+interval 10 year + interval 3 month +interval 22 day+interval 10 hour+interval 30 minute;
Query OK, 3 rows affected (0.17 sec)
Rows matched: 3  Changed: 3 Warnings: 0

5. 업데이트 결과 확인

테이블을 다시 조회해 변경된 값을 확인합니다.

mysql> select * from DemoTable1509;

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

+---------------------+
| ArrivalTime          |
+---------------------+
| 2028-05-13 20:50:30 |
| 2029-07-23 21:30:00 |
| 2026-04-03 16:15:20 |
+---------------------+
3 rows in set (0.00 sec)

정리

MySQL에서는 DATE_ADD() 함수나 + 연산자와 함께 INTERVAL을 사용해 DATETIME 값에 원하는 기간을 손쉽게 더할 수 있습니다. year, month, day, hour, minute 등 다양한 시간 단위를 개별 INTERVAL로 나열해 조합하면 복잡한 기간 계산도 한 번의 UPDATE 문으로 처리할 수 있으므로, 배치 작업이나 대량 데이터 보정 시 특히 유용합니다.