개발관련/오라클
oracle에서 week 간의 차이 구하기
후니의 개발이야기
2013. 1. 24. 17:09
728x90
반응형
예를 들어 201205 에서 201318 주 사이에 몇주가 있는지를 계산하는 쿼리
SELECT TRUNC((MAX(BASE_DATE) - MIN(BASE_DATE)) / 7) RESULT
FROM (SELECT BASE_DATE + LEVEL - 1 BASE_DATE
, TO_CHAR(BASE_DATE + LEVEL - 1, 'WW') WEEK_NUM
, TO_CHAR(BASE_DATE + LEVEL - 1, 'YYYY') || TO_CHAR(BASE_DATE + LEVEL - 1, 'WW') aaa
FROM (SELECT TO_DATE(SUBSTR(:AS_START, 1, 4), 'YYYY') BASE_DATE
FROM DUAL) A
CONNECT BY BASE_DATE + LEVEL - 1 <= LAST_DAY(TO_DATE(SUBSTR(:AS_END, 1, 4) || '12', 'YYYYMM')))
WHERE aaa = :AS_START
OR AAA = :AS_END
여기에서도 주의할 사항이 있는데 시작주가 0으로 시작하느냐 1로 시작하느냐와 오라클 설정에 주의해야
정확한 값을 얻을 수 있습니다.
이 점은 쿼리보시면 아마 이해 하실꺼에요 ^^
|
|
728x90