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 39635 게시물 읽기
No. 39635
주(week) 혹은 기간단위로 between 하기
작성자
김홍찬(chani282)
작성일
2012-09-11 22:09
조회수
4,456

데이터가 아래와 같이 있는데요

no,START_DATE,END_DATE
1,20120907,20120910
2,20120910,20120913
3,20120912,20120917
4,20120905,20120920
 

한주의 기간이 일~토 일때 20120909~20120915 기간에 포함되어있는

즉, 

위의 start_date 와 end_date안에 20120909~20120915 기간이 포함되어있는 데이터를 뽑으려고 하는데요

어떤식으로 해야할까요 함수가 있을거 같기도 한데...

 

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

 WITH TMP AS

(
SELECT '1' AS NO, '20120907' AS START_DATE, '20120910' AS END_DATE FROM DUAL
    UNION ALL SELECT '2', '20120910','20120913' FROM DUAL
    UNION ALL SELECT '3', '20120912','20120917' FROM DUAL
    UNION ALL SELECT '4', '20120905','20120920' FROM DUAL
)
 
SELECT
TMP.*
FROM TMP
WHERE START_DATE <= TO_CHAR(NEXT_DAY(SYSDATE-7,'SUN'),'YYYYMMDD')
AND END_DATE >= TO_CHAR(NEXT_DAY(SYSDATE,'SAT'),'YYYYMMDD')
 
원하시는 결과가 맞는지 모르겠네요.
초보님이 2012-09-12 10:47에 작성한 댓글입니다. Edit

 

감사합니다...

올려주신 쿼리를 돌려보면 아래값만 나오는데

NO START_DATE END_DATE
4  20120905   20120920
 

실제론 다 나와야합니다

결과를 뽑으려는 값은  20120909 ~ 20120915 사이에 하루라도 끼어있으면 나와야합니다.

그래서 시작일과 종료일을 기준으로 비교하면 안되고 시작일~종료일 기간으로 뽑아야하는데 쉽지 않네요

김홍찬(chani282)님이 2012-09-14 10:35에 작성한 댓글입니다.
이 댓글은 2012-09-14 10:36에 마지막으로 수정되었습니다.

시작일과 종료일을 교차 비교하시면 됩니다.
 WHERE 시작일 <= :입력종료일
   AND 종료일 >= :입력시작일

마농(manon94)님이 2012-09-14 13:24에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
39638카운터 구할때.. [3]
궁금
2012-09-13
4523
39637DB속도가 느려지고 ALRT LOG에 이렇게 자꾸보이네요 도와주세요
말하자
2012-09-12
4977
39636한 row로 select하기 도와주세요 ㅠㅠ [1]
알티
2012-09-11
4612
39635주(week) 혹은 기간단위로 between 하기 [3]
김홍찬
2012-09-11
4456
39634distinct ? Group by ? .. 근무시작일과 근무종료일을 합칠경우. [1]
EJ
2012-09-11
4817
39633sql 동적 쿼리 도움 좀 부탁 드립니다. [1]
김기훈
2012-09-11
4893
39632기간 건수 합계 구하기 [2]
마루아라
2012-09-10
4554
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다