오라클(Oracle)에서 특정 날짜가 속한 분기의 **마지막 날짜(분기 종료일)**을 구하려면 LAST_DAY 함수와 날짜 계산 로직을 결합하여 쉽게 구할 수 있습니다.
📌 분기 종료일 계산 로직
- 분기 종료 월 계산: 특정 날짜가 속한 분기의 마지막 월(3, 6, 9, 12)을 계산.
- 해당 월의 마지막 날짜 계산: LAST_DAY 함수를 사용하여 마지막 날을 구함.
📝 SQL 코드
SELECT LAST_DAY(ADD_MONTHS(TRUNC(your_date, 'Q'), 2)) AS quarter_end_date
FROM dual;
🔍 코드 설명
- TRUNC(your_date, 'Q'): your_date를 해당 분기의 첫 번째 날로 변환.
- ADD_MONTHS(..., 2): 분기 첫 번째 달에 2개월을 더해 분기 마지막 달로 이동.
- LAST_DAY(...): 분기 마지막 달의 마지막 날짜를 계산.
📅 예제: 특정 날짜의 분기 종료일 구하기
특정 날짜 '2025-01-15'의 분기 종료일을 구하는 SQL은 다음과 같습니다.
SELECT LAST_DAY(ADD_MONTHS(TRUNC(TO_DATE('2025-01-15', 'YYYY-MM-DD'), 'Q'), 2)) AS quarter_end_date
FROM dual;
✅ 실행 결과
QUARTER_END_DATE
2025-03-31 |
🧪 다양한 날짜에 대한 테스트 예제
SELECT your_date,
LAST_DAY(ADD_MONTHS(TRUNC(your_date, 'Q'), 2)) AS quarter_end_date
FROM (
SELECT TO_DATE('2025-01-15', 'YYYY-MM-DD') AS your_date FROM dual UNION ALL
SELECT TO_DATE('2025-04-10', 'YYYY-MM-DD') FROM dual UNION ALL
SELECT TO_DATE('2025-07-20', 'YYYY-MM-DD') FROM dual UNION ALL
SELECT TO_DATE('2025-10-05', 'YYYY-MM-DD') FROM dual
);
✅ 실행 결과
YOUR_DATE | QUARTER_END_DATE |
2025-01-15 | 2025-03-31 |
2025-04-10 | 2025-06-30 |
2025-07-20 | 2025-09-30 |
2025-10-05 | 2025-12-31 |
📢 참고 사항
- TRUNC(your_date, 'Q'): 날짜를 해당 분기의 첫 날로 변환.
- ADD_MONTHS: 특정 월을 더하거나 뺄 때 사용.
- LAST_DAY: 월의 마지막 날을 구할 때 사용.
이 방식은 간결하고 다양한 날짜에 대해 확장 가능하므로 유용하게 활용할 수 있습니다! 😊
📌 관련 해시태그
#Oracle #SQL #쿼리 #분기 #날짜함수 #데이터베이스 #LAST_DAY #TRUNC #ADD_MONTHS #쿼리최적화 #DB관리 #오라클SQL #쿼리작성 #SQLTips #개발자팁 #쿼리튜닝 #Database #SQL쿼리 #오라클함수 #IT개발 #Backend
'Program > ORACLE' 카테고리의 다른 글
[SQL] CREATE INDEX vs PRIMARY KEY: 차이점과 사용법 (1) | 2025.02.14 |
---|---|
[SQL] 오라클 NVL2 함수 활용법: NULL 값 처리하기 - NVL2 (2) | 2025.02.13 |
[SQL]📏 오라클 SQL에서 문자열 길이 계산하는 방법 - LENGTH, LENGTHB (0) | 2025.02.11 |
[SQL] 문자열 공백 제거 방법 - TRIM, REPLACE 등 (0) | 2025.02.10 |