728x90

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 설정을 잘 이해하고 활용한다면, 시간 기반 자동화 시스템 구축에도 매우 유용합니다.
참고자료
- Oracle 공식 문서
- Oracle 10g NEXT_DAY Reference
- 사내 ERP 스케줄 관리 시스템 구축 경험
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] EXTRACT()로 연도 별, 월 별, 일자 별 통계 분석하는 방법 (0) | 2025.06.05 |
|---|---|
| [ORACLE] LAST_DAY() 사용법 정리 : 월 마지막 날 자동 계산 방법 (0) | 2025.06.05 |
| [ORACLE] ADD_MONTHS()로 손쉬운 월 단위 날짜 계산 구현하기 (0) | 2025.06.05 |
| [ORACLE] ADD_MONTHS()로 손쉬운 월 단위 날짜 계산 구현하기 (0) | 2025.06.05 |
| [ORACLE] TO_TIMESTAMP()로 문자열을 타임 스탬프로 변환하는 방법 (0) | 2025.06.05 |