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 40598 게시물 읽기
No. 40598
오라클 날짜 연산
작성자
초보
작성일
2014-11-03 13:51
조회수
7,669

날짜 연산 질문 입니다.

테이블의 데이터에 아래와 같은 데이터가 있다고 하면 제가 원하는 데이터는

해당월과 다음달에 해당하는 해당하는 영화들입니다. 가령 금월이 11 월 이면 11, 12월기간 동안

해당하는 A,C,D,E 라는 리스트를 가지고 오고 싶습니다.

영화명   시작일 (st_date )     종료일(end_date )
A 영화   2014-10-22           2014-11-22
B 영화   2014-10-01           2014-10-30
C 영화   2014-11-01           2014-11-30
D 영화   2014-11-10           2014-12-10
E 영화   2014-12-01           2014-12-20

제가 구한 쿼리는

select *
from movie_master
where 1=1
AND   ( ( to_char(to_date(st_date , 'yyyy-mm-dd'), 'yyyy-mm') >= '2014-11'      
AND    to_char(to_date(st_date , 'yyyy-mm-dd'), 'yyyy-mm') <=
       to_char(add_months( to_date('2014-11','yyyy-mm'), 1), 'yyyy-mm') )
      
or    ( to_char(to_date(end_date , 'yyyy-mm-dd'), 'yyyy-mm') >= '2014-11'      
AND    to_char(to_date(end_date , 'yyyy-mm-dd'), 'yyyy-mm') <=
       to_char(add_months( to_date('2014-11','yyyy-mm'), 1), 'yyyy-mm') ) )

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

 

SELECT * FROM CT_REDIAL_SET

--WHERE REG_DATE BETWEEN TO_DATE('2014-11-01') AND ADD_MONTHS(SYSDATE,1);

WHERE TO_CHAR(REG_DATE, 'MM') BETWEEN TO_CHAR( SYSDATE, 'MM' ) AND TO_CHAR( ADD_MONTHS(SYSDATE,1), 'MM');

 

주석이나 주석안한거나 둘 중 하나 응용하십시요

 

 

 

 

cjoo님이 2014-11-03 14:55에 작성한 댓글입니다. Edit

1. 원하시는 조건을 주려면
  ==> 시작일과 종료일을 서로 교차비교하시면 됩니다.
  ==> 컬럼시작일 <= :조건종료일 AND 컬럼종료일 >= :조건시작일
2. 조건을 줄 때 성능을 고려한다면?
  ==> 컬럼을 가공하여 조건값과 비교하지 마세요.
  ==> 컬럼을 그대로 둔채 조건값을 컬럼값의 속성에 맞게 가공하여 비교 하세요
3. 기타 주의사항
  ==> 해당 컬럼의 속성이 Date 인지? Varchar2(10)인지? 에 따라 작성방법이 달라집니다.
  ==> 컬럼의 속성을 명확하게 인지하여 속성에 맞는 쿼리 작성을 해야합니다.


-- st_date, end_date 의 속성이 Varchar2(10)이라 가정한 풀이.
SELECT *
  FROM movie_master
 WHERE st_date  <= TO_CHAR(
                   ADD_MONTHS(TO_DATE('2014-11', 'yyyy-mm'), 2) - 1
                   , 'yyyy-mm-dd')
   AND end_date >= '2014-11' || '-01'
;

마농(manon94)님이 2014-11-03 15:06에 작성한 댓글입니다.
이 댓글은 2014-11-03 15:07에 마지막으로 수정되었습니다.

답변 정말 감사 합니다.~

초보님이 2014-11-03 17:49에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
40601약간 꼬인 계층형 쿼리?? [1]
ㅇㅇㅇ
2014-11-04
7333
40600재부팅후 tns 리스너가 없다고 나옵니다.
성준
2014-11-04
7773
40599outer join 관련 문의 드립니다. [2]
db초보
2014-11-03
7510
40598오라클 날짜 연산 [3]
초보
2014-11-03
7669
40597쿼리 질문드립니다. [3]
민상기
2014-11-02
6896
40595Por*C PCC-S-02201 에러>Oracle Client Upgrade
김병섭
2014-10-28
6878
40594view 임포트 질문입니다^^
후니
2014-10-25
6730
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다