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;
'Oracle > Oracle Programming' 카테고리의 다른 글
[Oracle] ORA-12505, TNS:listener does not currently know of SID given in connect descriptor (0) | 2013.09.25 |
---|---|
[Oracle] ORA-12638 : 신용 검색에 실패했습니다. (0) | 2013.08.16 |
[Oracle] ORA-01950 : 테이블스페이스 'USERS'에 대한 권한이 없습니다. (0) | 2013.05.08 |
[Oracle] 문자 처리 함수 (0) | 2013.02.11 |
[Oracle] 숫자함수 (0) | 2013.02.11 |