출처 : http://dani.egloos.com/1695190
출처 : http://www.dbtool.co.kr/board/board_view.jsp?leftmenu=0&no=2258&topmenu=2
참고 : http://database.sarang.net/?inc=read&aid=21388&criteria=oracle&subcrit=&id=&limit=20&keyword=%B3%AF%C2%A5+%B8%AE%BD%BA%C6%AE&page=1
이거는 현재 날짜부터 한 달후 날짜 구하기..
SELECT TO_CHAR(TO_DATE(BB.DAY, 'YYYYMMDD') + NUM, 'YYYY-MM-DD') AS DAY
FROM (
SELECT ROWNUM AS NUM
FROM DICTIONARY A,(
SELECT B.DAY AS BDAY, C.DAY AS CDAY
FROM
( SELECT TO_CHAR(SYSDATE,'YYYYMM') || '01' AS DAY FROM DUAL ) B,
( SELECT TO_CHAR(LAST_DAY(SYSDATE),'YYYYMMDD') AS DAY FROM DUAL ) C
) B
WHERE ROWNUM <= TO_DATE(B.CDAY, 'YYYYMMDD') - TO_DATE(B.BDAY, 'YYYYMMDD') + 1) AA,
( SELECT TO_CHAR(SYSDATE - TO_NUMBER(TO_CHAR(SYSDATE,'D')) + 1,'YYYYMMDD') AS DAY FROM DUAL ) BB
이거는 기본으로 현재 날짜에서 일주일 날자..
SELECT TO_CHAR(TO_DATE(BB.DAY, 'YYYYMMDD') + NUM-1, 'YYYY-MM-DD') AS DAY
FROM (
SELECT ROWNUM AS NUM
FROM DICTIONARY A,(
SELECT B.DAY AS BDAY, C.DAY AS CDAY
FROM
( SELECT TO_CHAR(SYSDATE - TO_NUMBER(TO_CHAR(SYSDATE,'D')) + 1,'YYYYMMDD') AS DAY FROM DUAL ) B,
( SELECT TO_CHAR(SYSDATE - TO_NUMBER(TO_CHAR(SYSDATE,'D')) + 7,'YYYYMMDD') AS DAY FROM DUAL ) C
) B
WHERE ROWNUM <= TO_DATE(B.CDAY, 'YYYYMMDD') - TO_DATE(B.BDAY, 'YYYYMMDD') + 1) AA,
( SELECT TO_CHAR(SYSDATE - TO_NUMBER(TO_CHAR(SYSDATE,'D')) + 1,'YYYYMMDD') AS DAY FROM DUAL ) BB
이거는 원하는 시작일부터 끝일까지 가지고 오는 쿼리입니다.
SELECT TO_CHAR(TO_DATE('[SDATE]', 'YYYY-MM-DD') + NUM-1, 'YYYY-MM-DD') AS DAY
FROM (
SELECT ROWNUM NUM
FROM DICTIONARY
WHERE ROWNUM <= TO_DATE('[EDATE]', 'YYYY-MM-DD') - TO_DATE('[SDATE]', 'YYYY-MM-DD') + 1
)
[SDATE] 는 시작일.. [EDATE]는 종료일입니다.
SELECT TO_CHAR( ADD_MONTHS(TO_DATE('2007-01','YYYY-MM'), NUM-1), 'YYYY-MM') AS MOnTH
FROM (
SELECT ROWNUM NUM
FROM DICTIONARY
WHERE ROWNUM <= months_between(TO_DATE('2007-12', 'YYYY-MM'), TO_DATE('2007-01', 'YYYY-MM')) + 1
)
'Programming > Oracle' 카테고리의 다른 글
[ORACLE] 컬럼 추가, 수정, 삭제 (0) | 2011.11.17 |
---|---|
오라클 스케쥴 (0) | 2011.11.14 |
오라클에서 원하는 날짜 리스트를 레코드로 가져오기 - 02 (0) | 2011.11.14 |
오라클 커서 사용 (0) | 2011.11.10 |
DBMS_OUTPUT (0) | 2011.11.10 |
댓글