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 39030 게시물 읽기
No. 39030
분기관련
작성자
박영훈
작성일
2011-11-01 15:28ⓒ
2011-11-01 17:21ⓜ
조회수
4,731

 안녕하세요..

 DATE TYPE 필드가 있습니다.

 하고자 하는것은 연도와 분기를 입력받아서,

 해당 연도/분기 이전 4분기에 해당하는 데이타를 뽑고자 함입니다.

 찾아보니 TO_CHAR(날짜, 'YYYY"Q"Q')  이걸 사용하는 예제가 있던데,

 해당 필드가 인덱스 필드라 가공을 하면 안되는 상황입니다.

 고민고민 하다 문의드립니다.

 즉 DATE 필드에 대해서 WHERE 절에 입력받은 분기 이전 4분기 시작날짜(해당월 1일 0시0분0초) ~ 입력받은 분기 종료날짜(해당월말일 23시59분59초) 까지 데이타를 추출하고 싶습니다.

 허접한 실력으로 하다보니 허접한 쿼리가 됐습니다. YQ 값은 2011Q2, 2009Q3 이렇게 받습니다.

날짜필드 BETWEEN

ADD_MONTHS(TO_DATE(SUBSTR(YQ, 1, 4) || SUBSTR(YQ, 6) * 3,  'YYYYMM'), -11)

AND

TO_DATE(TO_CHAR(LAST_DAY(TO_DATE(SUBSTR(YQ, 1, 4) || LPAD(SUBSTR(YQ, 6, 1) * 3, 2, '0'), 'YYYYMM')), 'YYYYMMDD') || '235959', 'YYYYMMDDHH24MISS')

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

 WHERE 날짜필드 >= ADD_MONTHS(TO_DATE(SUBSTR(yq, 1, 4) || SUBSTR(yq, 6) * 3, 'yyyymm'), -11)
   AND 날짜필드 <  ADD_MONTHS(TO_DATE(SUBSTR(yq, 1, 4) || SUBSTR(yq, 6) * 3, 'yyyymm'),   1)

마농(manon94)님이 2011-11-01 17:09에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
39033두칼럼사이의 값을 여려줄로 출력할&#46468;.. 조언부탁드립니다. [1]
이경율
2011-11-02
4222
39032그룹함수 여러번 쓸때..
홍의명
2011-11-02
3794
39031월별 생산량 찍는 쿼리인데 ora -00936 에러가 뜨네요 ㅠㅠ [2]
박광일
2011-11-01
4551
39030분기관련 [1]
박영훈
2011-11-01
4731
39029쿼리에서 같은 속성을 갖는것에 대해서 일련번호 매기는 쿼리 [3]
김인수
2011-11-01
5043
39028구분자관련 [1]
박진서
2011-11-01
4620
39027오라클과 PHP 연동 작업
최민석
2011-11-01
4147
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.022초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다