[SQL] 이후 날짜 구하기 - DATE_ADD, ADDDATE

2024. 9. 24. 17:31Language/SQL

 날짜 데이터에 특정 값을 더해 이후 날짜 데이터를 반환하는 'DATE_ADD, ADDDATE' 에 대해 알아보자.

 

1. 기본 문법

SELECT DATE_ADD(기준 날짜 데이터, INTERVAL 간격 값 및 유형) AS 별명
FROM 테이블명

 

DATE_ADD (= ADDDATE)

 특정 날짜 데이터에 지정한 유형의 간격 값을 더하는 함수

  • 'ADDDATE' 와 'DATE_ADD' 함수는 서로 같은 함수이다. 개인적으로 생각하기에는 'ADDDATE' 라는 명칭이 식별하기 불편해 'DATE_ADD' 로 이름만 바꾼 함수를 추가한 것으로 보인다. 그래서 'ADDDATE' 함수를 사용하는 경우 함수명만 바꿔 사용하면 된다.
  • '유형' 은 더할 데이터가 '년(year)' 인지 '월(month)' 인지 등을 구별하기 위한 유형을 말한다. 해당 유형 지정시 'INTERVAL' 을 사용해 값과 유형을 지정하게 된다.
  • 사용 가능한 유형은 여기서 'interval' 항목을 통해 확인할 수 있다.

 

2. 사용 예제

 '오늘(2024-09-24 12:00:00)' 의 '5년', '5개월', '5일', '5시간', '5분', '5초' 후의 각 날짜 데이터를 출력하는 솔루션을 작성한다.

SELECT '2024-09-24 12:00:00' ,
       DATE_ADD('2024-09-24 12:00:00', INTERVAL 5 YEAR) five_years_later,
       DATE_ADD('2024-09-24 12:00:00', INTERVAL 5 MONTH) five_months_later,
       DATE_ADD('2024-09-24 12:00:00', INTERVAL 5 DAY) five_days_later,
       DATE_ADD('2024-09-24 12:00:00', INTERVAL 5 HOUR) five_hours_later,
       DATE_ADD('2024-09-24 12:00:00', INTERVAL 5 MINUTE) five_minutes_later,
       DATE_ADD('2024-09-24 12:00:00', INTERVAL 5 SECOND) five_seconds_later

일정 간격 이후의 날짜/시간 데이터

 

'2024-09-24 12:00:00' 에서 각 간격 값 이후의 '날짜/시간' 데이터를 출력한 결과 이미지이다. 예제를 작성하다 보니 'DATE_ADD()' 함수의 첫 번째 파라미터로 '첫 번째 컬럼' 을 의미하는 '1' 을 사용했더니 에러가 발생했다. 아무래도 날짜/시간 형식(타입)을 갖는 컬럼명, 값만을 지정할 수 있는 걸로 보인다.

 

위에서 설명한대로 'DATE_ADD' 함수명 대신 'ADDDATE' 함수명을 사용해도 두 함수 똑같은 형식을 가지며 같은 기능을 수행하기에 똑같은 결과를 얻을 수 있다.


참고 문서