본문 바로가기

Oracle/Oracle Programming

[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;




반응형