본문 바로가기
Database/Oracle

[ORACLE] NEXT_DAY() 함수로 다음 특정 요일 구하는 방법과 실전 팁

by Papa Martino V 2025. 6. 5.
728x90

오라클 NEXT_DAY() 함수로 다음 특정 요일 구하는 방법과 실전 팁
[Oracle] NEXT_DAY

 

Oracle SQL에서 특정 날짜 이후의 원하는 요일을 구해야 할 때, NEXT_DAY() 함수는 매우 유용합니다. 이번 글에서는 NEXT_DAY 함수의 문법과 예제, 실무 활용법, 주의사항 등을 중심으로 최적화 콘텐츠를 제공합니다.

1. NEXT_DAY() 함수란?

NEXT_DAY(date, '요일') 함수는 주어진 날짜 이후로 가장 가까운 지정 요일의 날짜를 반환합니다.

  • date: 기준이 되는 날짜
  • '요일': 찾고자 하는 요일 (영문 또는 한글 가능)

지원되는 요일 입력 예

  • 영문: 'MONDAY', 'TUESDAY',...
  • 한글: '월요일', '화요일',... (NLS 설정에 따라 다름)

예제 1: 다음 월요일 구하기

SELECT NEXT_DAY(DATE '2025-06-04', 'MONDAY') AS next_monday FROM dual;
-- 결과: 2025-06-09

예제 2: 다음 일요일 구하기

SELECT NEXT_DAY(SYSDATE, 'SUNDAY') AS next_sunday FROM dual;

2. 실무 활용 예제

2-1. 다음 회의일 계산

SELECT team_name, meeting_day,
       NEXT_DAY(SYSDATE, meeting_day) AS next_meeting
FROM team_schedule;

2-2. 리포트 마감일 설정

SELECT report_id,
       NEXT_DAY(TO_DATE('2025-06-04', 'YYYY-MM-DD'), 'FRIDAY') AS due_date
FROM monthly_reports;

2-3. 다음 금요일이 언제인지 확인

SELECT NEXT_DAY(CURRENT_DATE, 'FRIDAY') AS next_friday FROM dual;

3. 요일 인식에 주의할 점

  • NLS_DATE_LANGUAGE 설정이 'AMERICAN'이면 영어 요일명만 인식
  • 'KOREAN' 또는 'KOREA'로 설정되면 한글 요일 사용 가능

예제: NLS 설정 확인

SELECT * FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_DATE_LANGUAGE';

예제: 한글 요일 사용 (NLS 설정 필요)

SELECT NEXT_DAY(DATE '2025-06-04', '금요일') FROM dual;

4. NEXT_DAY과 관련된 유용한 함수

  • TRUNC(date, 'D'): 주의 시작일(요일)에 맞게 자르기
  • ADD_MONTHS(date, n): 특정 날짜로부터 N개월 더하기
  • LAST_DAY(date): 해당 월의 마지막 날짜 반환

5. 요약

NEXT_DAY()는 특정 요일 기준으로 자동 계산이 필요한 회의 스케줄, 배치 작업, 마감일 처리 등 다양한 업무에서 자주 활용됩니다. 요일명 입력 형식과 NLS 설정을 잘 이해하고 활용한다면, 시간 기반 자동화 시스템 구축에도 매우 유용합니다.

참고자료

728x90