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 35143 게시물 읽기
No. 35143
두 필드의 범위에 해당하는 값을 쿼리하는 방법이 없을까요?
작성자
김재근(unreturn)
작성일
2009-01-21 20:55
조회수
2,723

안녕하세요~ 항상 DB사랑넷에 많은 도움을 받고 있습니다.

해결 방법이 있을 것 같으면서도 잘 떠오르질 않아서 질문 좀 드립니다.

DB 테이블에 시작시간, 종료시간이 설정된 필드가 있어 현재 시간에 해야하는 작업들을 구해오려고 합니다.
아래의 테이블에 B 작업의 경우는 22시~04시 사이에 작업이 이루어져야 하는 작업인데
단순한 조건으로 구해 오기가 쉽지 않네요.


테이블

작업명
시작시간
종료시간
A
1000
2300
B
2200
0400
C
0800
1200
D
0000
0900

SELECT * FROM 테이블
WHERE 
시작시간 <= TO_CHAR(SYSDATE, 'HH24MISS')
AND 종료시간 > TO_CHAR(SYSDATE, 'HH24MISS')

시작 시간이 종료시간 보다 크지 않을 경우에는 처리가 가능하지만 0시를 끼고 들어가는 작업 시간은 구해오질 못하겠어요 ㅠㅠ;
도와주세요~~ ^^
이 글에 대한 댓글이 총 1건 있습니다.
원래 원하시는건 DATE 에 대한 레인지인데 처리할때는 시간이 아닌 문자로 처리하시려니 안맞는거 같네요.
아래처럼 하시면 조회가 됩니다.

--작업명 시작시간 종료시간
WITH TAB1 AS (
SELECT 'A' AS JOB_NM, '1000' AS STIME, '2300' AS ETIME FROM DUAL UNION ALL
SELECT 'B', '2200', '0400' FROM DUAL UNION ALL
SELECT 'C', '0800', '1200' FROM DUAL UNION ALL
SELECT 'D', '0000', '0900' FROM DUAL
)
SELECT *
  FROM ( SELECT JOB_NM
              , STIME
              , ETIME
              , TO_DATE( TO_CHAR( SYSDATE, 'YYYYMMDD ' )||STIME, 'YYYYMMDD HH24MI' ) AS SDATE
              , CASE WHEN ETIME < STIME
                     THEN TO_DATE( TO_CHAR( SYSDATE, 'YYYYMMDD ' )||ETIME, 'YYYYMMDD HH24MI' ) + 1
                     ELSE TO_DATE( TO_CHAR( SYSDATE, 'YYYYMMDD ' )||ETIME, 'YYYYMMDD HH24MI' )
                     END  AS EDATE
           FROM TAB1 ) SUB
 WHERE SDATE <= SYSDATE
   AND EDATE  > SYSDATE
임재흥(임재흥)님이 2009-01-22 09:15에 작성한 댓글입니다.
이 댓글은 2009-01-22 09:16에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
35146[질문] CLOB 에서 CONTAINS 를 이용한 대소문자 비구별 검색은?
이상호
2009-01-24
3810
35145날짜 구하기 [3]
손님
2009-01-23
3166
35144[질문] 오라클 rac 에서 process 수 개념 [1]
쭈니소리
2009-01-22
3120
35143두 필드의 범위에 해당하는 값을 쿼리하는 방법이 없을까요? [1]
김재근
2009-01-21
2723
35142특정행 제외.. [3]
궁돌이
2009-01-21
3752
35140VARCHAR2 DML 처리 관련 질문입니다.. [1]
항상궁금
2009-01-21
2298
35139DB 강제 세션 종료 관련 [1]
권혁원
2009-01-20
3214
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다