TRUNC 함수는 절사하는 함수이다.

 

출처 : http://www.oracleclub.com
TRUNC(n, m)

 TRUNC함수는 n값을 m 소숫점 자리로 반내림한 값을 반환합니다.
 ROUND 함수와 비교해 보세요..
 
SQL>SELECT TRUNC(7.5597, 2) TEST FROM dual ;

    TEST
 -------
     7.55

SQL>SELECT TRUNC (5254.26, -2 ) TEST FROM dual ;

    TEST
 -------
     5200

-----------------------------------------------------------

 

TRUNC 함수는 위의 경우처럼 숫자에도 적용하지만,

오纘?날짜타입 필드에 대해서도 사용할 수 있다.

 

날짜타입을 TRUNC할때는 연월일을 짜를수 있다.

select sysdate,
       trunc(sysdate),
       trunc(sysdate,'dd'),
       trunc(sysdate,'mm'),
       trunc(sysdate,'yyyy')
  from dual

 

결과:

2008-04-08 오후 5:17:01
2008-04-08
2008-04-08
2008-04-01
2008-01-01

 

쿼리 시간은 어떨지 비교해 보았습니다.

쿼리 대상 : 669,765 건 데이터

 

insert_date 필드는 인덱스 없으며,

insert_date 필드는 데이터가 생성된 날짜와 시간정보를 모두 가지고 있습니다.

 

1. select * from 테이블명 where insert_date = '2008-03-31'
--> 0건

2. select * from 테이블명 where trunc(insert_date,'dd') = '2008-03-31'

--> 111건 , 1초 걸림

3. select * from 테이블명 where to_char(insert_date,'YYYY-MM-DD') = '2008-03-31'

--> 111건 , 2초 걸림

4. select * from 테이블명 where to_date(insert_date) = '2008-03-31'

--> 111건 , 3초 걸림

 

Trunc함수가 to_char함수와 to_date함수 보다는 빠르군요.

 

출처 : http://blog.naver.com/gaegulee2k?Redirect=Log&logNo=100049584379

 

'DataBase > Sql' 카테고리의 다른 글

[Sql] 시노님 작업 참고  (1) 2012.11.30
[Sql] 페이지 단위 조회  (0) 2012.11.28
[Oracle] update where  (0) 2012.11.12
[Sql] 행을 열로 표시  (0) 2012.04.25
[Sql] NoSql  (0) 2012.01.04

+ Recent posts