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