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

MySQL에서 CURDATE()로 현재 날짜와 일치하는 특정 날짜의 레코드 업데이트하기

MySQL에서 현재 날짜와 일치하는 레코드 업데이트 방법

MySQL에서는 CURDATE() 함수를 활용하면 오늘 날짜와 일치하는 레코드만 손쉽게 업데이트할 수 있습니다. 이번 글에서는 예제 테이블을 생성하고, 현재 날짜와 일치하는 마감일(DueDate)을 가진 레코드의 금액(Amount)을 변경하는 전체 과정을 단계별로 살펴보겠습니다.

1단계: 테이블 생성

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable1822
     (
     Amount int,
     DueDate date
     );
Query OK, 0 rows affected (0.00 sec)

2단계: 샘플 데이터 삽입

INSERT 명령을 사용하여 테이블에 여러 개의 레코드를 추가합니다.

mysql> insert into DemoTable1822 values(1000,'2019-10-11');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1822 values(500,'2019-11-30');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1822 values(700,'2018-11-30');
Query OK, 1 row affected (0.00 sec)

3단계: 저장된 데이터 조회

SELECT 문으로 테이블에 저장된 모든 레코드를 확인합니다.

mysql> select * from DemoTable1822;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+--------+------------+
| Amount | DueDate    |
+--------+------------+
|   1000 | 2019-10-11 |
|    500 | 2019-11-30 |
|    700 | 2018-11-30 |
+--------+------------+
3 rows in set (0.00 sec)

4단계: 현재 날짜와 일치하는 레코드 업데이트

WHERE 절에 CURDATE() 함수를 사용하면 시스템의 현재 날짜와 DueDate가 일치하는 레코드만 선택하여 업데이트할 수 있습니다. 아래 쿼리는 해당 조건을 만족하는 행의 Amount 값을 5000으로 변경합니다.

mysql> update DemoTable1822 set Amount=5000 where DueDate=curdate();
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1 Warnings: 0

5단계: 업데이트 결과 확인

업데이트가 정상적으로 적용되었는지 테이블을 다시 조회해 보겠습니다.

mysql> select * from DemoTable1822;

실행 결과, 현재 날짜와 일치하는 레코드의 금액만 변경된 것을 확인할 수 있습니다.

+--------+------------+
| Amount | DueDate    |
+--------+------------+
|   1000 | 2019-10-11 |
|   5000 | 2019-11-30 |
|    700 | 2018-11-30 |
+--------+------------+
3 rows in set (0.00 sec)

핵심 정리

UPDATE 문의 WHERE 절에서 CURDATE() 함수를 비교 조건으로 사용하면, 실행 시점의 날짜와 일치하는 레코드만 동적으로 필터링할 수 있습니다. 이 방식은 매일 자동 실행되는 배치 작업이나 마감일 기반 결제 처리 등 날짜 조건이 필요한 다양한 상황에서 유용하게 활용됩니다.