by 쭈남편 [2012.10.25 14:58:29]
@.@)/ 데이타 샘플을 10건 정도 올려주시고, 이렇게 출력 되었으면 좋겠다...
라고 글을 써주시면 답변이 링크가 아닌 쿼리로 답변이 달릴 확률이 높습니다 ~ :)
주차라는 개념이 모호하여
월요일 기준인지 일요일 기준인지에 따라 다르고
같은 주차일지라도 달이 다르거나 해가 달라지는 경우도 존재하며
해가 바뀌는 경우의 주차가 전년도 마지막 주차에 포함될지 다음해 1주차에 포함될지도 달라집니다.
이런 모호한 상황에서 모호한 질문에 답하기는 상당히 어렵습니다.
-- 날짜와 주차, 요일 정보에 이해를 돕기 위한 확인 쿼리
WITH t AS
(
SELECT TRUNC(sysdate, 'yy') + LEVEL - 1 dt
FROM dual
CONNECT BY LEVEL <= 365
)
SELECT dt
, TO_CHAR(dt, 'ddd') ddd
, TO_CHAR(dt, 'yyyymm') ym
, TO_CHAR(dt, 'iw') iw -- 월요일 기준(1월1일이 (월~목)이면 1주차
-- 1월1일이 (화수목)인경우 전년도 말일이 이듬해 1주차가 되는 구조
-- 1월1일이 (금토일)이면 전년도 마지막 주차(52또는53)
, TO_CHAR(dt, 'ww') ww -- 매년 1월1일 기준(1월1일~1월7일까지 1주차)
, TO_CHAR(dt, 'w') w -- 매월 1일 기준(1일~7일까지 1주차)
, TO_CHAR(dt, 'd') d -- 요일(1~7)
, TO_CHAR(dt, 'dy') dy -- 요일(일~토)
, TO_CHAR(dt, 'day') day -- 요일(일요일~토요일)
FROM t
;