[Oracle] TRUNC 함수 사용법 (시간, 소수점 절사)

오라클에서  소수점을 절사(버림)하거나 날짜의 시간을 절사 하기 위해서는 TRUNC 함수를 사용한다. 소수점, 시간 등 단순한 절사 방법 외에 TRUNC 함수의 옵셥을 사용하여 다양한 절사 방법이 있으니 아래를 참고하면 된다.

 

목차
  1. 기본 사용법
  2. 시간 절사 방법
  3. 일자/요일 절사 방법
  4. 숫자/소수점 절사 방법

 

기본 사용법

기본 사용법

WITH temp AS (
  SELECT TO_DATE('2018-12-13 22:10:59', 'YYYY-MM-DD HH24:MI:SS') dt, 1234.56 nmb 
    FROM dual 
)  

SELECT dt
     , TRUNC(dt)  --시간 절사
     , nmb
     , TRUNC(nmb) --소수점 절사 
  FROM temp
 

 

사용법 :  TRUNC("값", "옵션")

TRUNC 함수는 주로 소수점 절사 및 날짜의 시간을 없앨 때 사용한다.

시간 절사 방법

WITH temp AS (
  SELECT TO_DATE('2018-12-13 22:10:59', 'YYYY-MM-DD HH24:MI:SS') dt, 1234.56 nmb
    FROM dual 
)  

SELECT dt 
     , TRUNC(dt, 'DD')   --시간 절사 
     , TRUNC(dt, 'HH24') --분, 초 절사
     , TRUNC(dt, 'MI')   --초 절사
  FROM temp

 

 

TRUNC(DT, 'DD')와 TRUNC(DT)는 동일한 결과를 출력한다.

 

일자/요일 절사 방법

WITH temp AS (
  SELECT TO_DATE('2018-12-13 22:10:59', 'YYYY-MM-DD HH24:MI:SS') dt , 1234.56 nmb
    FROM dual 
)  

SELECT dt
     , TRUNC(dt, 'YEAR')  --월, 일 초기화
     , TRUNC(dt, 'MONTH') --일 초기화
     , TRUNC(dt, 'DAY')   --요일 초기화 (일요일)
  FROM temp

 

 

TRUNC(DT, 'DAY') 해당 주의 일요일의 일자로 초기화한다.
TRUNC(DT, 'YEAR') = TRUNC(DT, 'YYYY') 동일한 결과
TRUNC(DT, 'MONTH') = TRUNC(DT, 'MM') 동일한 결과

 

숫자/소수점 절사 방법

WITH temp AS (
  SELECT TO_DATE('2018-12-13 22:10:59', 'YYYY-MM-DD HH24:MI:SS') dt , 1234.56 nmb
    FROM dual 
)  

SELECT nmb
     , TRUNC(nmb, 1) --소수점 첫째 절사
     , TRUNC(nmb, 2) --소수점 둘째 절사
     , TRUNC(nmb,-1) --1단위 절사
     , TRUNC(nmb,-2) --10단위 절사
  FROM temp

 

 

TRUNC(NMB, 1)는 소수점을 반올림하지 않고 절사 한다.
TRUNC(NMB,-1)는 주로 금액 계산 시 1원 단위를 절사 할 때 사용 한다. 

 

사용 예제

▲ 소수점 및 정수 절사

 

▲ 월, 일 초기화

 

댓글

Designed by JB FACTORY