ROUND

Syntax

ROUND
(
  expr  IN date [, fmt   IN text]
)
RETURN date;

ROUND
(
  expr  IN timestamp without time zone [, fmt   IN text]
)
RETURN timestamp without time zone;

ROUND
(
  expr  IN timestamp with time zone [, fmt   IN text]
)
RETURN timestamp with time zone;

개요

ROUND 함수는 날짜나 타임스탬프 값을 주어진 포맷 모델에 따라 반올림한다.

즉, 지정한 단위(예: 연, 월, 분 등)에 맞춰 날짜나 시간의 값을 조정해서 반환한다.

포맷 문자열(fmt)을 통해 반올림 단위를 지정할 수 있으며, 값이 NULL이면 그대로 NULL을 반환한다.

타임스탬프 버전의 경우, 시간 부분을 반올림한 후 초는 0으로 설정된다.

파라미터

파라미터
설명

expr

date, timestamp, timestamptz 타입이다; 반올림할 대상 날짜 또는 타임스탬프 값이다.

fmt

text 타입이다; 반올림 기준을 나타내는 포맷 문자열이다. 예를 들어, 'YYYY', 'MM', 'DDD', 'HH24' 등 다양한 단위로 반올림할 수 있다. 이 값이 NULL이면, 기본값으로 처리되어 원래 값을 그대로 반환하거나 'DDD' (일 단위 반올림)로 처리된다.

예제

# 테스트 1
-- 날짜 반올림 예제: '2023-05-15' 날짜를 월 단위로 반올림
SELECT oracle.ROUND('2023-05-15'::date, 'MONTH');
-- 결과: 해당 월의 시작일 또는 월의 특정 기준일로 조정된 날짜 반환

   round    
------------
 2023-05-01
(1 row)

# 테스트 2
-- 날짜 반올림 예제 (포맷 미지정): 기본 포맷('DDD')으로 반올림
SELECT oracle.ROUND('2023-05-15'::date);
-- 결과: '2023-05-15' 날짜가 포맷 모델에 따라 반올림된 결과 반환

   round    
------------
 2023-05-15
(1 row)


# 테스트 3
-- 타임스탬프 반올림 예제: '2023-05-15 14:35:20' 타임스탬프를 시간 단위로 반올림
SELECT oracle.ROUND('2023-05-15 14:35:20'::timestamp, 'HH24');
-- 결과: '2023-05-15 15:00:00' (분과 초가 0으로 조정됨)

        round        
---------------------
 2023-05-15 15:00:00
(1 row)

# 테스트 4
-- 타임스탬프 with time zone 반올림 예제: 기본 포맷('DDD')으로 반올림
SELECT oracle.ROUND('2023-05-15 14:35:20+09'::timestamptz);
-- 결과: 포맷 모델에 따라 반올림된 타임스탬프 반환

         round          
------------------------
 2023-05-16 00:00:00+09
(1 row)

Last updated