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

MySQL에서 날짜에 1년 2일을 더하는 방법 – DATE_ADD와 INTERVAL 활용하기

MySQL에서 날짜 값에 특정 기간을 더하려면 INTERVAL 키워드를 사용하면 됩니다. 이번 글에서는 날짜에 1년과 2일을 한 번의 쿼리로 더하는 방법을 예제와 함께 살펴보겠습니다.

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

mysql> create table DemoTable1376
    -> (
    -> AdmissionDate date
    -> );
Query OK, 0 rows affected (0.68 sec)

INSERT 명령어를 사용해 테이블에 몇 개의 레코드를 삽입합니다.

mysql> insert into DemoTable1376 values('2018-01-21');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1376 values('2017-12-01');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1376 values('2018-11-02');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1376 values('2019-03-14');
Query OK, 1 row affected (0.17 sec)

SELECT 문으로 테이블의 전체 레코드를 확인합니다.

mysql> select * from DemoTable1376;

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

+---------------+
| AdmissionDate |
+---------------+
| 2018-01-21    |
| 2017-12-01    |
| 2018-11-02    |
| 2019-03-14    |
+---------------+
4 rows in set (0.00 sec)

날짜에 1년 2일 추가하는 쿼리

다음은 DATE_ADD 함수를 중첩하여 날짜에 1년과 2일을 동시에 더하는 쿼리입니다. 안쪽 DATE_ADD에서 먼저 1년을 더하고, 바깥쪽 DATE_ADD에서 2일을 추가하는 방식으로 동작합니다.

mysql> select date_add(date_add(AdmissionDate,interval 1 year),interval 2 day) AS AfterAddingOneYearTwoDays from DemoTable1376;

쿼리를 실행하면 아래와 같이 각 날짜에 1년 2일이 더해진 결과를 확인할 수 있습니다.

+---------------------------+
| AfterAddingOneYearTwoDays |
+---------------------------+
| 2019-01-23                |
| 2018-12-03                |
| 2019-11-04                |
| 2020-03-16                |
+---------------------------+
4 rows in set (0.00 sec)

더 간결한 대체 방법

함수를 중첩하지 않고 산술 연산자와 INTERVAL을 조합하면 코드를 더 읽기 쉽게 만들 수 있습니다.

SELECT AdmissionDate + INTERVAL 1 YEAR + INTERVAL 2 DAY AS Result
FROM DemoTable1376;

또한 MySQL에서 제공하는 복합 단위인 YEAR_DAY를 사용하면 하나의 INTERVAL 표현식으로 처리할 수도 있습니다.

SELECT DATE_ADD(AdmissionDate, INTERVAL '1 2' YEAR_DAY) AS Result
FROM DemoTable1376;

세 가지 방법 모두 동일한 결과를 반환하므로, 상황과 취향에 맞게 선택하여 사용하시면 됩니다.