본문 바로가기
Database/Oracle

[ORACLE] ROUND() 함수 초보 탈출 가이드: 숫자/날짜 반올림 핵심 정리

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

오라클 ROUND() 함수 초보 탈출 가이드: 숫자/날짜 반올림 핵심 정리
[Oracle] ROUND

 

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와의 적절한 구분을 통해 더욱 정교한 데이터 제어가 가능합니다.

참고자료

728x90