database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 24110 게시물 읽기
No. 24110
특정날짜부터 2개월 후까지 날짜를 죽 출력하고 싶습니다.
작성자
오희철(moralhazard)
작성일
2005-09-15 16:24ⓒ
2005-09-15 16:24ⓜ
조회수
11,963

예를들면 오늘이 9월15일이니깐 9월 15일 ~ 11월 30일까지 날짜만

아래처럼 쭉 뽑아 보고 싶은데 어떻게 접근해야 할지 모르겠습니다.

이것저것 해봐도 안되고 해서 이렇게 질문드립니다.

명쾌한 답변 부탁드립니다.

 

년도 월 일

-------------

2005 09 15

2005 09 16

2005 09 17

2005 09 18

~

2005 11 29

2005 11 30

이 글에 대한 댓글이 총 12건 있습니다.

달력테이블을 만들어 조인하세요...

이경환(babocom)님이 2005-09-15 16:35에 작성한 댓글입니다.

SELECT TO_DATE ('20050915', 'YYYYMMDD') + ROWNUM - 1
  FROM dict
 WHERE ROWNUM <= TO_DATE ('20051130', 'YYYYMMDD') - TO_DATE ('20050915', 'YYYYMMDD') + 1

 

-- Oracle SQL Tuning 까페 http://cafe.daum.net/oraclesqltuning

장진주(zozogirl)님이 2005-09-15 16:51에 작성한 댓글입니다.

select  trunc(sysdate) + rownum - 1
from    dict
where   trunc(sysdate) + rownum - 1 < = last_day(add_months(trunc(sysdate), 2));

단테님이 2005-09-15 16:57에 작성한 댓글입니다.
이 댓글은 2005-09-15 16:59에 마지막으로 수정되었습니다. Edit

오호.. rownum 을 쓰는 방법이 있군요... 멋진 쿼리네요

2개월 정도야 오버헤드도 얼마 없을테고.. 

이경환(babocom)님이 2005-09-15 16:58에 작성한 댓글입니다.

* 2개월 이상일 경우

DICT 테이블의 문제점은 총 건수이상 처리를 못합니다.

 

오라클 버전 9i 이상이시면은 다음과 같이 처리하면 됩니다.

 

SELECT * FROM (
SELECT TO_DATE('20050915', 'YYYYMMDD') + LEVEL - 1
FROM   DUAL CONNECT BY LEVEL <= TO_DATE('20151130', 'YYYYMMDD') - TO_DATE('20050915', 'YYYYMMDD') + 1
);

 

오라클 10g 이상이면은 인라인뷰 안 감싸도 됩니다.

 

http://angel.sarang.net

보규니(jbk35)님이 2005-09-15 18:20에 작성한 댓글입니다.
이 댓글은 2005-09-15 18:23에 마지막으로 수정되었습니다.

그냥 간단히 아래와 같이 해도 되겠군요.

 

SELECT     TO_DATE ('20050915', 'YYYYMMDD') + LEVEL - 1
      FROM DUAL
CONNECT BY LEVEL <=
                TO_DATE ('20151130', 'YYYYMMDD')
              - TO_DATE ('20050915', 'YYYYMMDD')
              + 1

 

-- Oracle SQL Tuning 까페 http://cafe.daum.net/oraclesqltuning

장진주(zozogirl)님이 2005-09-15 18:46에 작성한 댓글입니다.

 

진주님 쿼리는 버전에 따라 문제가 있습니다.
제가 글에도 명시했듯이 오라클 10g 이상이면은 인라인뷰 안 감싸도 됩니다.

즉 진주님 위 쿼리는 9i에서는 한건만 나옵니다.
10g는 그렇게 처리해도 됩니다.

 

추석 잘 보내세요 ^^

보규니(jbk35)님이 2005-09-16 00:45에 작성한 댓글입니다.

보규니님께...

인라인 뷰 감싸고 안싸고의 차이가 무엇이기에 결과의 차이를 가져오는 지를 설명해주실 수 있습니까?

 

저거...

명백한 논리적 에러인 듯 한대요...

김흥수(protokhs)님이 2005-09-16 09:10에 작성한 댓글입니다.

 

같은 맥락인 것 같은데요...

님의 SQL을 보고 테스트한 결과 입니다...

이유를 설명해주실 수 있는지요...

 

SQL> SELECT TO_DATE('20050915', 'YYYYMMDD') + LEVEL - 1 dt,level
  2  FROM   DUAL CONNECT BY prior dummy = dummy
  3  /

DT            LEVEL
-------- ----------
05/09/15          1

경   과: 00:00:00.00
SQL> select * from (
  2  SELECT TO_DATE('20050915', 'YYYYMMDD') + LEVEL - 1 dt,level
  3  FROM   DUAL CONNECT BY prior dummy = dummy
  4  )
  5  /
ERROR:
ORA-01436: CONNECT BY의 루프가 발생되었습니다

 

선택된 레코드가 없습니다.

경   과: 00:00:00.00
SQL>

 

김흥수(protokhs)님이 2005-09-16 09:13에 작성한 댓글입니다.

진주, 흥수님의 궁금한점은 여기 url 클릭하시면은

다 해결될것입니다.

 

http://asktom.oracle.com/pls/ask/f?p=4950:8:387315723860040019::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:40476301944675

 

즐거운 추석 되세요 ^____^

보규니(jbk35)님이 2005-09-16 09:41에 작성한 댓글입니다.

흠... 재밌군요.

쓸모가 많겠네요.

 

-- Oracle SQL Tuning 까페 http://cafe.daum.net/oraclesqltuning

장진주(zozogirl)님이 2005-09-16 10:25에 작성한 댓글입니다.

보규니님 ...

감사합니다.^^

즐거운 추석 되시구요..

 

글구

SQL 튜닝 툴을 만드신 거 있으시던데요...

 

저도 받아 보았습니다.

 

VC로 만드신거 같던데요..

OLE-DB쓰셔서...

 

근데 궁금한점이 한가지...

왜 OCI 안 쓰셨죠?

한계점이 많을텐데요...

 

사실 저같은 경우 비슷한 거 만든게 있습니다.

C# 써서 ADO.NET 쓰고...

 

근데 한계점이 많아서

데이타 처리 부분을 OCI로 바꾸려고 하고 있습니다.(현재는 바빠서 손에서 놓은 상태입니다,....)

 

아직 제가 만든 것은 미완성이구요...

같이 고민하며 만들어보는 것도 좋으리라 생각합니다.

생각있으시면 연락을 주셔도 좋구요.(protokhs@hotmail.com==>MSN 저는 메일은 잘 확인 안합니다.^^)

 

그리구 제가 만든 것은 튜닝툴은 아니고 개발 보조도구입니다.

SQL 템플릿을 사용한 PL-SQL 코드 제네레이터를 가지고 있어서 테이블을 선택하면 해당 테이블의 하위 테이블을 모두 삭제하는 PL-SQL 프로시져를 자동으로 생성할 수도 있고...확장가능한 템플릿 언어를 가지고 있어서 실제 프로젝트에서 SQL만 만들면 HTML 을 제네레이트 하도록 정의하여 사용하기도 했었습니다...

(편집기는 제가 직접 C#으로 만들었고 신택스하이라이트,코드인사이트,자동 들여쓰기 내어쓰기, 괄호 맞춤 기능,열모드 기능 등이 지원됩니다. 편집기는 소스를 데브피아에 올려놓았구요)

관심 있으시면 연락한번 주십시오.

^^

 

김흥수(protokhs)님이 2005-09-16 11:57에 작성한 댓글입니다.
이 댓글은 2005-09-16 12:06에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
24114OCI has fetched truncated data 워닝에러 .. [1]
초보돌진
2005-09-16
4434
24113[질문] 최대값 [1]
강명원
2005-09-15
2138
24111내부 서버의 오라클을 외부에 공개하기 [5]
권남
2005-09-15
3007
24110특정날짜부터 2개월 후까지 날짜를 죽 출력하고 싶습니다. [12]
오희철
2005-09-15
11963
24109게시판 쿼리시 여러분은 어떻게 사용하시나요? [3]
와니
2005-09-15
4408
24108급하게 질문입니다....ㅡㅜ [3]
전용범
2005-09-15
2193
24107방화벽(Symantec) 내부로 접속?
김종준
2005-09-15
2919
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다