핵심 원리: ADD_MONTHS 함수
ADD_MONTHS
함수는 특정 날짜에 개월 수를 더하거나 뺀 날짜를 반환합니다. 이 함수는 일정 기간 후 또는 전의 날짜를 계산할 때 유용합니다.
기본 문법:
ADD_MONTHS(date, n)
date
: 기준이 되는 날짜.n
: 더하거나 뺄 개월 수 (음수일 경우 개월 수를 뺌).
예시:
ADD_MONTHS(SYSDATE, 6)
: 현재 날짜에서 6개월 후의 날짜를 반환합니다.ADD_MONTHS(TO_DATE('2023-01-01', 'YYYY-MM-DD'), -3)
: 2023년 1월 1일에서 3개월 전의 날짜를 반환합니다.
연습 문제
- 2024년 3월 1일부터 18개월 후의 날짜를 구하세요.
- 현재 날짜에서 2년 3개월 전의 날짜를 구하세요.
연습 문제 해답
ADD_MONTHS(TO_DATE('2024-03-01', 'YYYY-MM-DD'), 18)
를 사용하면 결과는 2025년 9월 1일입니다.
SELECT ADD_MONTHS(TO_DATE('2024-03-01', 'YYYY-MM-DD'), 18) AS new_date
FROM dual;
- 현재 날짜에서 2년 3개월 전의 날짜를 계산하는 쿼리는 다음과 같습니다:
SELECT ADD_MONTHS(SYSDATE, -27) AS past_date
FROM dual;
응용 문제
- 특정 사원의 입사일로부터 5년 후의 날짜를 계산하여 출력하세요.
- 특정 날짜에서 15개월을 더한 후의 날짜와, 같은 날짜에서 1년 3개월을 더한 날짜를 각각 계산하고 비교하세요.
응용 문제 해답
SELECT ename, ADD_MONTHS(hiredate, 60) AS five_years_later FROM emp;
- 이 쿼리는 사원의 입사일로부터 5년 후의 날짜를 계산합니다.
SELECT TO_DATE('2023-03-01', 'YYYY-MM-DD') AS original_date,
ADD_MONTHS(TO_DATE('2023-03-01', 'YYYY-MM-DD'), 15) AS fifteen_months_later,
TO_DATE('2023-03-01', 'YYYY-MM-DD') + INTERVAL '1-3' YEAR TO MONTH AS one_year_three_months_later
FROM dual;
- 이 쿼리는 주어진 날짜에서 15개월 후와 1년 3개월 후의 날짜를 각각 계산하여 비교합니다.
실무 유형 문제
- 특정 프로젝트의 시작일로부터 6개월 후와 1년 6개월 후의 날짜를 각각 계산하여 프로젝트 일정에 반영하세요.
실무 유형 문제 해답
SELECT project_name,
ADD_MONTHS(start_date, 6) AS six_months_later,
ADD_MONTHS(start_date, 18) AS one_year_six_months_later
FROM projects;
이 쿼리는 프로젝트의 시작일로부터 6개월 후와 1년 6개월 후의 날짜를 계산하여 출력합니다.