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 40690 게시물 읽기
No. 40690
특정 시간 대역 조회 및 시점 표현에 대한 문의입니다.
작성자
김태경(cranes)
작성일
2015-01-23 01:59
조회수
7,443

 

 

안녕하세요

 

이리 저리 일에 치어서 정신없네요

 

 

요즘은 시간데이터 에 대한 궁금증이 있어서 문의 드립니다.

 

다음과 같이 동영상에 대한 시간 데이터가 존재 하는데

 

작업자에게 특정 시간을 주고 그 시간에 맞는 동영상을 로드 해야 하는데 잘 않되네요

 

 

select 1 rn , TO_DATE('2014-01-01 00:00:00','YYYY-MM-DD HH24:MI:SS') stdt ,TO_DATE('2014-01-01 00:55:00','YYYY-MM-DD HH24:MI:SS') ed_dt from dual union all

select 2 , TO_DATE('2014-01-01 00:55:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 01:40:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 3 , TO_DATE('2014-01-01 01:40:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 02:25:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 4 , TO_DATE('2014-01-01 02:25:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 02:55:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 5 , TO_DATE('2014-01-01 02:55:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 03:45:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 6 , TO_DATE('2014-01-01 03:45:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 04:30:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 7 , TO_DATE('2014-01-01 04:30:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 04:50:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 8 , TO_DATE('2014-01-01 04:50:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 05:15:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 9 , TO_DATE('2014-01-01 05:15:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 06:10:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 10 , TO_DATE('2014-01-01 06:10:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 06:30:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 11 , TO_DATE('2014-01-01 06:30:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 07:15:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 12 , TO_DATE('2014-01-01 07:15:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 08:00:00','YYYY-MM-DD HH24:MI:SS') from dual union all

 

select 13 , TO_DATE('2014-01-01 08:00:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 09:00:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 14 , TO_DATE('2014-01-01 09:00:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 09:55:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 15 , TO_DATE('2014-01-01 09:55:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 10:25:00','YYYY-MM-DD HH24:MI:SS') from dual union all

 

 

select 16 , TO_DATE('2014-01-01 10:25:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 11:15:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 17 , TO_DATE('2014-01-01 11:15:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 12:20:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 18 , TO_DATE('2014-01-01 12:20:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 13:15:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 19 , TO_DATE('2014-01-01 13:15:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 13:35:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 20 , TO_DATE('2014-01-01 13:35:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 14:20:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 21 , TO_DATE('2014-01-01 14:20:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 15:45:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 22 , TO_DATE('2014-01-01 15:45:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 16:10:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 23 , TO_DATE('2014-01-01 16:10:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 17:10:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 24 , TO_DATE('2014-01-01 17:10:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 18:00:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 25 , TO_DATE('2014-01-01 18:00:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 22:00:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 26 , TO_DATE('2014-01-01 22:00:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 22:50:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 27 , TO_DATE('2014-01-01 22:50:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-01 23:20:00','YYYY-MM-DD HH24:MI:SS') from dual union all

select 28 , TO_DATE('2014-01-01 23:20:00','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2014-01-02 00:05:00','YYYY-MM-DD HH24:MI:SS') from dual

 

 

여기에서 특정 시작 시간과 종료시간을 주었을때

 

2014-01-01 08:20:00 ~ 2014-01-01 10:10:00 이라고 주었을경우

 

13,14,15가 나오게 하고 / (처음값은 0 , 마지막 값은 2 ) , 추가된 시간 즉 st_Dt 에서 추가된 시간(분)

출력값은 13, 0, 2014-01-01 08:20:00 , 2014-01-01 09:00:00, 20 <-- 시작시점

14, 1, 2014-01-01 09:00:00 , 2014-01-01 09:55:00, 0

15, 2, 2014-01-01 09:55:00 , 2014-01-01 10:10:00 , 15 <-- 종료 시점

 

 

으로 표현 하고 싶습니다.

 

 

너무 감사합니다.

 

 

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

SELECT a.rn
     , GREATEST(a.st_dt, b.sdt) sdt
     , LEAST   (a.ed_dt, b.edt) edt
     , ROUND(CASE WHEN b.sdt > a.st_dt THEN b.sdt - a.st_dt
                  WHEN b.edt < a.ed_dt THEN a.ed_dt - b.edt
                  ELSE 0 END * 24 * 60) x
  FROM t a
     , (SELECT TO_DATE('2014-01-01 08:20:00', 'yyyy-mm-dd hh24:mi:ss') sdt
             , TO_DATE('2014-01-01 10:10:00', 'yyyy-mm-dd hh24:mi:ss') edt
          FROM dual
        ) b
 WHERE a.st_dt < b.edt
   AND a.ed_dt > b.sdt
;

마농(manon94)님이 2015-01-23 17:22에 작성한 댓글입니다.
이 댓글은 2015-01-23 17:23에 마지막으로 수정되었습니다.

마농님 너무 감사드립니다.

 

몸살나서 이제서 확인했습니다.

 

정말 절망적인 상황에서 마농님의 답변은 저한테 한줄기 빛 같네요

 

덕분에 위기도 헤쳐나가고 시간을 벌었습니다.

 

너무 감사합니다.

 

 

 

김태경(cranes)님이 2015-01-24 23:48에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40693순차자료에서 구간별 생산량 구하기 [2]
이태우
2015-01-26
7410
40692작업월력 입력 질문좀 드립니다. [5]
궁금이
2015-01-26
7282
40691재귀쿼리에서 하위 노드 값을 확인 하는 방법 [2]
임민규
2015-01-23
9280
40690특정 시간 대역 조회 및 시점 표현에 대한 문의입니다. [2]
김태경
2015-01-23
7443
40689초보의 쿼리 질문 [1]
권사마
2015-01-22
6390
40688조언부탁드립니다. [2]
선이
2015-01-22
6528
40687근태 쿼리 문의 드립니다. [2]
초보
2015-01-22
7123
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다