본문 바로가기
Programming/DataBase

[Oracle] 전 주 구하기

by 막이 2016. 3. 28.

TRUNC 에서 주에 대한 format을 줄 때 주의 할 점이 있습니다. 각 format의 의미를 정확히 알고 써야 합니다.

 

'w' : 매월1일 요일을 기준한 주초일자.

'ww' : 매년 1월1일 요일을 기준한 주초일자.

'iw' : 주초 월요일일자.

'd' / 'dy' / 'day' : 주초 일요일 일자. 

 

그러므로 연도나 월이 시작되는 요일에 무관하게 전주 토요일을 구하려면 'iw'나 'dy'등을 이용하는게 보다 적합합니다.

 

각 결과를 확인하시고 쓰세요.

SELECT

      SYSDATE - 7 AS "7일전"

    , TRUNC(SYSDATE, 'w') AS 주초1 

    , TRUNC(SYSDATE, 'ww') AS 주초2 

    , TRUNC(SYSDATE, 'iw') AS 주초3 

    , TRUNC(SYSDATE, 'dy') AS 주초4 

    , TRUNC(SYSDATE, 'iw') - 2 AS 항상_전주토요일1 

    , TRUNC(SYSDATE, 'dy') - 1 AS 항상_전주토요일2

FROM dual