본문 바로가기
Programming/Oracle

오라클에서 원하는 날짜 리스트를 레코드로 가져오기 - 01

by NAMP 2011. 11. 14.


출처 : 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

댓글