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

MySQL에서 DATE 유형 열을 업데이트하는 방법 – DATE_ADD 함수 활용법

MySQL에서 날짜(DATE) 유형의 열 값을 수정해야 하는 경우가 자주 있습니다. 예를 들어 입사일과 같은 날짜 데이터를 일괄적으로 1년씩 증가시키고 싶다면 DATE_ADD() 함수를 활용하면 간단하게 처리할 수 있습니다. 이번 글에서는 실제 예제를 통해 DATE 유형 열을 업데이트하는 전체 과정을 단계별로 살펴보겠습니다.

1. 테이블 생성하기

먼저 날짜 유형의 열을 포함하는 테이블을 생성합니다.

mysql> create table DemoTable1451
    -> (
    -> JoiningDate date
    -> );
Query OK, 0 rows affected (0.52 sec)

위 쿼리는 JoiningDate라는 이름의 DATE 유형 열 하나를 가진 테이블을 만듭니다.

2. 샘플 데이터 삽입하기

INSERT 문을 사용하여 테이블에 날짜 데이터를 몇 개 입력합니다.

mysql> insert into DemoTable1451 values('2019-07-21');
Query OK, 1 row affected (0.07 sec)
mysql> insert into DemoTable1451 values('2018-01-31');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable1451 values('2017-06-01');
Query OK, 1 row affected (0.20 sec)

3. 저장된 데이터 확인하기

SELECT 문으로 테이블에 저장된 모든 레코드를 조회해 보겠습니다.

mysql> select * from DemoTable1451;

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

+-------------+
| JoiningDate |
+-------------+
| 2019-07-21  |
| 2018-01-31  |
| 2017-06-01  |
+-------------+
3 rows in set (0.00 sec)

4. DATE_ADD() 함수로 날짜 열 업데이트하기

이제 핵심 단계입니다. 아래 쿼리는 DATE_ADD() 함수를 사용하여 모든 날짜 레코드를 1년씩 증가시킵니다.

mysql> update DemoTable1451 set JoiningDate=date_add(JoiningDate, interval 1 year);
Query OK, 3 rows affected (0.15 sec)
Rows matched: 3  Changed: 3 Warnings: 0

date_add(JoiningDate, interval 1 year) 구문은 기존 날짜 값에 1년을 더한 새로운 날짜를 반환하며, UPDATE 문이 이 값을 다시 해당 열에 저장하는 방식으로 동작합니다.

다양한 시간 단위 활용하기

INTERVAL 키워드 뒤에는 연도 외에도 다양한 시간 단위를 지정할 수 있습니다.

  • DAY – 일 단위 증가/감소
  • MONTH – 월 단위 증가/감소
  • YEAR – 연도 단위 증가/감소
  • HOUR, MINUTE, SECOND – 시간 단위 조정

예를 들어 날짜를 3개월 감소시키려면 date_sub(JoiningDate, interval 3 month) 또는 date_add(JoiningDate, interval -3 month)처럼 작성할 수 있습니다.

5. 업데이트 결과 확인하기

업데이트 후 테이블을 다시 조회하여 변경된 값이 제대로 반영되었는지 확인합니다.

mysql> select * from DemoTable1451;

모든 날짜가 정확히 1년씩 증가한 것을 확인할 수 있습니다.

+-------------+
| JoiningDate |
+-------------+
| 2020-07-21  |
| 2019-01-31  |
| 2018-06-01  |
+-------------+
3 rows in set (0.00 sec)

마무리

MySQL에서 DATE 유형 열을 업데이트하는 것은 UPDATE 문과 DATE_ADD()/DATE_SUB() 함수의 조합만으로 손쉽게 구현할 수 있습니다. WHERE 절을 추가하면 특정 조건에 맞는 행만 선택적으로 업데이트할 수도 있으므로, 대량의 날짜 데이터를 관리할 때 매우 유용합니다. 실무에서 일괄적인 날짜 보정 작업이 필요할 때 이 방법을 적극적으로 활용해 보시기 바랍니다.