[Oracle] 전일, 전주, 전월, 전분기, 전반기, 전년도 구하기
01. 일간
입력값 : 20130228
전일 : SELECT TO_CHAR(TO_DATE('20130228', 'YYYYMMDD') -1, 'YYYYMMDD') FROM DUAL;
02. 주간
입력값 : 20130228
현재주 : SELECT TO_CHAR(TO_DATE('20130228', 'YYYYMMDD'), 'YYYY')||TO_CHAR(TO_DATE('20130228', 'YYYYMMDD'), 'WW') FROM DUAL;
지난주 : SELECT TO_CHAR(TO_DATE('20130228', 'YYYYMMDD') -7, 'YYYY')||TO_CHAR(TO_DATE('20130228', 'YYYYMMDD') -7, 'WW') FROM DUAL;
03. 월간
입력값 : 201301
지난 월 : SELECT TO_CHAR(TO_DATE('201301', 'YYYYMM') -1, 'YYYYMM') FROM DUAL;
04. 분기
입력값 : 201304
현재 분기 : SELECT TO_CHAR(TO_DATE('201304', 'YYYYMM'),'YYYY')||LPAD(TO_CHAR(TO_DATE('201304', 'YYYYMM'), 'q'), 2, '0') FROM DUAL;
지난 분기 : SELECT TO_CHAR(ADD_MONTHS(TO_DATE('201301', 'YYYYMM'), -1),'YYYY')
||LPAD(TO_CHAR(TO_DATE('201301', 'YYYYMM') -1, 'q'), 2, '0') FROM DUAL;
05. 반기
입력값 : 201307
현재 반기 : SELECT TO_CHAR(TO_DATE('201307', 'YYYYMM'),'YYYY')||LPAD(CEIL(TO_CHAR(TO_DATE('201307', 'YYYYMM'), 'q') / 2), 2, '0') FROM DUAL;
지난 반기 : SELECT TO_CHAR(ADD_MONTHS(TO_DATE('201307', 'YYYYMM'), -1),'YYYY')
||LPAD(CEIL(TO_CHAR(TO_DATE('201307', 'YYYYMM') -1, 'q') / 2), 2, '0') FROM DUAL;
06. 년도
입력값 : 2013
지난 년도
SELECT TO_CHAR(ADD_MONTHS(TO_DATE(:CLO_YM, 'YYYY'), -12), 'YYYY') FROM DUAL;