728x90

Oracle SQL에서 숫자 또는 날짜 데이터를 반올림하는 데 사용되는 ROUND() 함수는 데이터 정제와 보고서 작성, 통계 분석에 필수적인 함수입니다. 본 글에서는 ROUND 함수의 구조, 숫자형과 날짜형 데이터에서의 활용법, 실무 중심 예제를 통해 개발자들이 바로 이해하고 활용할 수 있도록 정리하였습니다.
1. ROUND() 함수란?
ROUND() 함수는 숫자 또는 날짜 값을 반올림하여 반환하는 Oracle의 내장 함수입니다. 두 가지 버전이 있으며, 각각의 활용 방식에 차이가 있습니다.
기본 문법
-- 숫자형
ROUND(number [, decimal_places])
-- 날짜형
ROUND(date [, format])
2. 숫자 반올림 ROUND()
숫자 데이터를 소수점 이하로 반올림하거나, 특정 자리 수로 반올림할 수 있습니다.
예제 1: 소수점 이하 반올림
SELECT ROUND(123.4567, 2) AS result FROM dual;
-- 결과: 123.46
예제 2: 정수 반올림
SELECT ROUND(78.9) AS result FROM dual;
-- 결과: 79
예제 3: 소수점 앞자리 반올림 (음수 위치)
SELECT ROUND(678.91, -1) AS result FROM dual;
-- 결과: 680
3. 날짜 반올림 ROUND()
Oracle의 ROUND 함수는 날짜형 데이터도 반올림할 수 있습니다. 지정한 포맷을 기준으로 가장 가까운 값으로 반올림됩니다.
지원 포맷 예시
- 'DD' : 일(day) 단위
- 'MM' : 월(month) 단위
- 'YYYY' : 연도(year) 단위
- 'HH' 또는 'HH24' : 시(hour) 단위
- 'MI' : 분(minute) 단위
예제 4: 일 단위 반올림
SELECT ROUND(TO_DATE('2025-06-14 11:30:00', 'YYYY-MM-DD HH24:MI:SS')) AS rounded_date FROM dual;
-- 결과: 2025-06-14
예제 5: 월 단위 반올림
SELECT ROUND(DATE '2025-06-16', 'MM') AS result FROM dual;
-- 결과: 2025-07-01
예제 6: 연도 단위 반올림
SELECT ROUND(DATE '2025-06-30', 'YYYY') AS result FROM dual;
-- 결과: 2026-01-01
4. 실무 활용 예제
4-1. 금액 단위 반올림 처리
SELECT customer_id, ROUND(purchase_amount, -3) AS rounded_total
FROM purchases;
4-2. 급여 보고서에서 백 단위 반올림
SELECT employee_id, ROUND(salary, -2) AS salary_rounded
FROM employees;
4-3. 월 기준 회계 일자 반올림
SELECT invoice_id, ROUND(invoice_date, 'MM') AS account_month
FROM invoices;
5. ROUND vs TRUNC 함수 비교
ROUND와 함께 자주 비교되는 함수가 TRUNC()입니다. 이 두 함수의 차이점을 아래 표로 정리해 보겠습니다.
| 항목 | ROUND() | TRUNC() |
|---|---|---|
| 용도 | 반올림 | 버림 |
| 숫자 처리 | 지정 소수점에서 반올림 | 지정 소수점에서 절삭 |
| 날짜 처리 | 가장 가까운 날짜로 반올림 | 해당 단위의 시작으로 절삭 |
예제 비교
SELECT ROUND(123.456, 1), TRUNC(123.456, 1) FROM dual;
-- 결과: 123.5 , 123.4
6. 오류 방지 체크리스트
- 숫자형 ROUND 사용 시 decimal_places는 정수여야 함
- 날짜형 ROUND의 format 문자열은 대소문자 구분 없이 작성 가능
- 날짜 포맷 지정이 없을 경우 기본적으로 'DD'(일 단위) 기준 반올림
7. 함께 사용하면 좋은 함수들
TRUNC()– 버림 처리 함수TO_DATE()– 문자열을 날짜형으로 변환SYSDATE, SYSTIMESTAMP– 현재 날짜/시간FLOOR(), CEIL()– 숫자 내림/올림 함수
8. 요약
ROUND() 함수는 숫자 계산과 날짜 처리 모두에서 자주 사용되는 다목적 함수입니다. 반올림이 필요한 모든 상황에서 신속하고 정확한 처리를 가능하게 해 주며, TRUNC와의 적절한 구분을 통해 더욱 정교한 데이터 제어가 가능합니다.
참고자료
- Oracle 공식 문서
- Oracle 10g ROUND Reference
- 사내 데이터 정제 및 통계 처리 프로젝트 실무 예제
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] NEW_TIME() 함수로 로컬 시간을 GMT로 변환하기 (0) | 2025.06.05 |
|---|---|
| [ORACLE] TRUNC() 숫자 절삭 처리 방법과 ROUND()와의 차이점 (0) | 2025.06.05 |
| [ORACLE] EXTRACT()로 연도 별, 월 별, 일자 별 통계 분석하는 방법 (0) | 2025.06.05 |
| [ORACLE] LAST_DAY() 사용법 정리 : 월 마지막 날 자동 계산 방법 (0) | 2025.06.05 |
| [ORACLE] NEXT_DAY() 함수로 다음 특정 요일 구하는 방법과 실전 팁 (0) | 2025.06.05 |