DB/Oracle

TRUNC . 원하는 결과를

Edward. K 2007. 12. 27. 14:03
반응형
- 원하는 소수점 자리수 만큼만 보여주고 나머지는 없애버린다.

- EX) TRUNC(12.345, 2)  => 12.34 (소수점 2자리만 보여준다)
         TRUNC(12.345)     => 12 (소수점 자릿수를 지정하지 않으면 정수만 보여준다.)
         TRUNC('2004-05-33', 'MONTH')  => '2004-05-01' (월을 기준으로 1일로 돌아온다)
         TRUNC('2004-05-12', 'YEAR')    =>  '2004-01-01' (년을 기준으로 1월 1일로 돌아온다)


달의 처음 날자, 끝날자를 가져온다.

select
      TRUNC(SYSDATE-60, 'MONTH') SD1 ,   -- 두달전  첫날
      TRUNC(LAST_DAY(SYSDATE-60)) ED1,   -- 두달전 마지막날
      TRUNC(SYSDATE-30, 'MONTH') SD2,
      TRUNC(LAST_DAY(SYSDATE-30)) ED2,
      TRUNC(SYSDATE, 'MONTH') SD3,
      TRUNC(LAST_DAY(SYSDATE)) ED3
from dual


BETWEEN으로 검색하려는 경우..다음달의 첫날까지 세팅해야함..
      TRUNC(SYSDATE-60, 'MONTH') SD1 ,   -- 두달전  첫날
     
TRUNC(SYSDATE-30, 'MONTH') ED1,   -- 한달전 첫날


select
      TRUNC(SYSDATE-60, 'MONTH') SD1 ,   -- 두달전 첫날
      TRUNC(SYSDATE-30, 'MONTH') ED1,   -- 한달전 첫날
      TRUNC(SYSDATE-30, 'MONTH') SD2,
  -- 한달전 첫날
      TRUNC(SYSDATE, 'MONTH') ED2,  -- 이번달 첫날
      TRUNC(SYSDATE, 'MONTH') SD3,  -- 이번달 첫날
      TRUNC (SYSDATE, 'IW') ED3  -- 해당일의 날자까지
from dual
반응형