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

MySQL에서 날짜 간격 조건을 올바르게 구현하는 방법

MySQL에서 DATE_ADD() 함수와 INTERVAL 키워드를 활용하면 날짜 컬럼의 값을 원하는 만큼 손쉽게 증가시킬 수 있습니다. 이번 글에서는 실제 예제를 통해 날짜에 대한 간격 조건을 올바르게 구현하고, 특정 컬럼의 모든 값에 5개월씩 더하는 방법을 단계별로 살펴보겠습니다.

1단계: 테이블 생성

먼저 마감일(DueDate)을 저장할 테이블을 생성합니다.

mysql> create table DemoTable (DueDate date);
Query OK, 0 rows affected (0.92 sec)

2단계: 데이터 삽입

INSERT 명령어를 사용하여 테이블에 샘플 레코드를 추가합니다.

mysql> insert into DemoTable values('2019-01-12');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('2019-04-01');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('2019-07-19');
Query OK, 1 row affected (0.15 sec)

3단계: 데이터 조회

SELECT 문으로 테이블의 모든 레코드를 확인해 보겠습니다.

mysql> select *from DemoTable;

출력 결과

+------------+
| DueDate |
+------------+
| 2019-01-12 |
| 2019-04-01 |
| 2019-07-19 |
+------------+
3 rows in set (0.00 sec)

4단계: INTERVAL 조건으로 날짜 업데이트

다음은 DATE_ADD() 함수와 INTERVAL 조건을 사용하여 컬럼의 모든 값에 5개월을 더하는 쿼리입니다.

mysql> update DemoTable set DueDate=date_add(DueDate,interval 5 MONTH);
Query OK, 3 rows affected (0.19 sec)
Rows matched: 3 Changed: 3 Warnings: 0

위 쿼리에서 date_add(DueDate, interval 5 MONTH)는 DueDate 컬럼의 각 날짜 값에 정확히 5개월을 더합니다. 이 방식은 일수를 직접 계산하는 것보다 훨씬 안정적이며, 월말 날짜나 윤년 등의 경우에도 MySQL이 자동으로 올바르게 처리해 줍니다.

5단계: 결과 확인

업데이트 후 테이블의 레코드를 다시 한 번 확인해 보겠습니다.

mysql> select *from DemoTable;

출력 결과

+------------+
| DueDate |
+------------+
| 2019-06-12 |
| 2019-09-01 |
| 2019-12-19 |
+------------+
3 rows in set (0.00 sec)

결과를 보면 모든 날짜가 정확히 5개월씩 증가한 것을 확인할 수 있습니다. 이처럼 MySQL에서는 DATE_ADD() 함수와 INTERVAL 구문을 조합하면 날짜 및 시간 간격 조건을 간단하고 오류 없이 구현할 수 있습니다. 참고로 날짜를 감소시켜야 하는 경우에는 DATE_SUB() 함수를 사용하거나 INTERVAL 앞에 음수 값을 지정하면 됩니다.