All thing of the world!

Oracle ROUND 설명 : 오라클 함수 본문

IT/Oracle DBMS

Oracle ROUND 설명 : 오라클 함수

WorldSeeker 2021. 4. 4. 12:29

1. 함수의 목적
    
   Oracle ROUND는 fmt인수로 지정된 단위를 반올림한 날짜를 리턴한다. 
   이 함수는 NLS_CALENDAR 세션 매개 변수에 반응하지 않는다.

2. 샘플을 통한 개념 퀵뷰

연도를 반올림처리한다.

SELECT ROUND (TO_DATE ('27-OCT-00'),'YEAR')
"New Year" FROM DUAL;

New Year
---------
01-JAN-01


3. 사용방법 

4. 함수 PARAMETER 설명

DATE 데이터 타입으로 리턴한다.

[date]
ROUND 함수로 변환할 SOURCE 데이터를 입력한다.

[fmt]
ROUND함수로 반올림할 단위를 정의한다.
생략하면 가장 가까운 날짜(day)로 round 된다.

5. 다양한 샘플표현

example1) 날짜를 round 처리한다. 날짜를 어떻게 round 처리하지?

SELECT ROUND (TO_DATE ('20170816'),'day')
"New Day" FROM DUAL;

날짜는 주단위로 생각해야 한다. 8월 16일은 그 주의 반이 넘지 않아서 그 주를 시작하는 8월 13일이 결과 값으로 나온다. (한주의 시작은 일요일이다)

SELECT ROUND (TO_DATE ('20170817'),'day')
"New Day" FROM DUAL;

8월 17일은 그 주의 반을 넘어 그 주를 시작하는 20일이 결과 값으로 나온다. 

example2) 달(month)을 round 처리한다.

SELECT ROUND (TO_DATE ('20170815'),'month')
"New Month" FROM DUAL;




8월 15일은 한달의 반을 못채웠기 때문에 8월 1일이 결과값으로 반환된다.
그럼 16일로 변경하고 round 처리해보자.

SELECT ROUND (TO_DATE ('20170816'),'month')
"New Month" FROM DUAL;




16일은 달의 반을 넘었기 때문에 다음달인 9월 1일이 결과로 반환된다.

example3) 연도를 반올림 처리한다.

SELECT ROUND (TO_DATE ('20170616'),'year')
"New Year" FROM DUAL;



6월 16일은 아직 연도의 반을 지나지 않았기 때문에 17년 1월 1일을 출력한다.

SELECT ROUND (TO_DATE ('20170716'),'year')
"New Year" FROM DUAL;


17년 7월 16일은 연도의 반을 지났기 때문에 18년 1월 1일을 출력한다.

 

Comments