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

MySQL에서 날짜에 1일을 더하는 방법 – DATE_ADD() 함수 완벽 가이드

MySQL에서 특정 날짜에 1일을 추가해야 하는 경우가 종종 있습니다. 예를 들어 만료일 계산, 배송 예정일 산정, 예약 시스템 구현 등 다양한 상황에서 날짜 연산이 필요합니다. 이럴 때 DATE_ADD() 함수를 사용하면 간단하게 해결할 수 있습니다.

DATE_ADD() 함수란?

DATE_ADD() 함수는 기준 날짜에 지정한 시간 간격(INTERVAL)을 더하는 MySQL의 내장 함수입니다. 기본 문법은 다음과 같습니다.

DATE_ADD(날짜, INTERVAL 값 단위)

단위는 DAY, MONTH, YEAR, HOUR, MINUTE 등 다양하게 사용할 수 있으며, 이번 글에서는 1일을 추가하는 방법을 실제 예제와 함께 살펴보겠습니다.

1. 테이블 생성하기

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

mysql> create table Add1DayDemo
-> (
-> id int,
-> MyDate datetime not null
-> );
Query OK, 0 rows affected (1.06 sec)

id와 datetime 타입의 MyDate 컬럼으로 구성된 간단한 테이블입니다.

2. 샘플 데이터 삽입하기

테스트용 레코드를 두 개 삽입합니다. 첫 번째 레코드에는 현재 시간(now())을, 두 번째 레코드에는 현재 시간에서 5일을 더한 값을 넣어보겠습니다.

mysql> insert into Add1DayDemo values(1,now());
Query OK, 1 row affected (0.08 sec)

mysql> insert into Add1DayDemo values(2,date_add(now(),interval 5 day));
Query OK, 1 row affected (0.16 sec)

3. 전체 데이터 조회하기

삽입된 모든 레코드를 확인합니다.

mysql> select * from Add1DayDemo;

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

+------+---------------------+
| id | MyDate |
+------+---------------------+
| 1 | 2018-10-30 10:51:21 |
| 2 | 2018-11-04 10:51:30 |
+------+---------------------+
2 rows in set (0.00 sec)

id가 2인 레코드의 날짜가 11월 4일로 5일이 더해진 것을 확인할 수 있습니다.

4. DATE_ADD()로 1일 추가하기

이제 핵심인 MyDate 필드에 1일을 추가해 보겠습니다. SELECT 문과 함께 DATE_ADD() 함수를 사용합니다.

mysql> SELECT DATE_ADD(`MyDate`, INTERVAL 1 DAY) from Add1DayDemo
-> where id=2;

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

+------------------------------------+
| DATE_ADD(`MyDate`, INTERVAL 1 DAY) |
+------------------------------------+
| 2018-11-05 10:51:30 |
+------------------------------------+
1 row in set (0.00 sec)

기존에 11월 4일이었던 날짜가 1일이 더해져 11월 5일로 변경된 것을 확인할 수 있습니다. 시간 정보는 그대로 유지되며 날짜만 정확히 하루 증가합니다.

참고: UPDATE로 실제 데이터 변경하기

위 예제는 조회 결과만 변경된 것이므로, 테이블의 실제 데이터를 수정하려면 UPDATE 문과 함께 사용하면 됩니다.

mysql> UPDATE Add1DayDemo
-> SET MyDate = DATE_ADD(MyDate, INTERVAL 1 DAY)
-> WHERE id = 2;

마무리

MySQL에서 날짜에 1일을 더하는 작업은 DATE_ADD() 함수 하나로 손쉽게 처리할 수 있습니다. 반대로 날짜에서 일수를 빼야 할 때는 DATE_SUB() 함수를 사용하거나 INTERVAL 앞에 음수 값을 넣으면 됩니다. 날짜 연산은 실무에서 매우 자주 사용되므로 DATE_ADD() 함수의 활용법을 잘 익혀두시기 바랍니다.