이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다. Java(TM) 플랫폼 : 1.8.0_321 Oracle IDE : 4.1.5.21.78 |
설명
ROUND(), TRUNC()는 숫자 데이터의 반올림, 버림 처리 외에 날짜 데이터에도 사용할 수 있다.
소수점 위치 정보가 아닌 기준 포맷값을 지정해 줌을 참고할 것.
[기준 포맷값]
CC, SCC : 네 자리 연도의 끝 두자리를 기준으로 사용
→ 2016년이면 2050년 기준. 반올림할 경우 2001년으로 처리
SYYYY, YYYY, YEAR, SYEAR, YYY, YY, Y : 날짜 데이터의 해당 연, 월, 일의 7월 1일을 기준
→ 2016년 7월 1일일 경우, 2017년으로 처리
IYYY, IYY, IY, I : ISO 8601에서 제정한 날짜 기준년도 포맷을 기준
Q : 각 분기의 두 번째 달의 16일 기준
MONTH, MON, MM, RM : 각 달의 16일 기준
WW : 해당 연도의 몇 주(1~53번째 주)를 기준
IW : ISO 8601에서 제정한 날짜 기준 해당 연도의 주(WEEK)를 기준
W : 해당 월의 주(1~5번째 주)를 기준
DDD, DD, J : 해당 일의 정오(12:00:00)를 기준
DAY, DY, D : 한 주가 시작되는 날짜를 기준
HH, HH12, HH24 : 해당 일의 시간을 기준
MI : 해당 일 시간의 분을 기준
※ 예제 확인 전 아래 쿼리를 실행
SELECT SYSDATE
FROM DUAL;
만약 결과값이 아래처럼 나온다면
시/분/초가 보이지 않아 설정한 포맷값에 따른 변화를 확인할 수 없다. 사용하는 프로그램에서 출력 포맷을 변경해 주자.
SQL Developer에서는
도구 - 환경설정 - 데이터베이스 - NLS
'날짜 형식'을 'RR/MM/DD HH24:MI:SS'으로 변경
<변경 후 결과값>
문법
ROUND(날짜 데이터(필수), 반올림 기준 포맷(선택, Default는 'DDD'로 추정))
TRUNC(날짜 데이터(필수), 버림 기준 포맷(선택, Default는 'DDD'로 추정))
사용 예시
-- ROUND query
SELECT SYSDATE
, ROUND(SYSDATE, 'CC') AS FORMAT_CC
, ROUND(SYSDATE, 'YYYY') AS FORMAT_YYYY
, ROUND(SYSDATE, 'Q') AS FORMAT_Q
, ROUND(SYSDATE, 'DDD') AS FORMAT_DDD
, ROUND(SYSDATE, 'HH') AS FORMAT_HH
, ROUND(SYSDATE) AS FORMAT_NONE
FROM DUAL;
-- TRUNC query
SELECT SYSDATE
, TRUNC(SYSDATE, 'CC') AS FORMAT_CC
, TRUNC(SYSDATE, 'YYYY') AS FORMAT_YYYY
, TRUNC(SYSDATE, 'Q') AS FORMAT_Q
, TRUNC(SYSDATE, 'DDD') AS FORMAT_DDD
, TRUNC(SYSDATE, 'HH') AS FORMAT_HH
, TRUNC(SYSDATE) AS FORMAT_NONE
FROM DUAL;
결과
-- ROUND query
-- TRUNC query
'개발 지식 > [DBMS] Oracle' 카테고리의 다른 글
[Oracle] 형 변환 함수(2) - TO_CHAR() (0) | 2022.05.12 |
---|---|
[Oracle] 형 변환 함수(1) - 암시적 형 변환, 명시적 형 변환 (0) | 2022.05.11 |
[Oracle] 날짜 관련 함수(4) - MONTHS_BETWEEN() (0) | 2022.05.09 |
[Oracle] 날짜 관련 함수(3) - MONTHS_BETWEEN() (0) | 2022.05.08 |
[Oracle] 날짜 관련 함수(2) - ADD_MONTHS() (0) | 2022.05.07 |