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 40745 게시물 읽기
No. 40745
마농님 지정시간 관련 sql 문의드립니다.
작성자
김태경(cranes)
작성일
2015-03-17 17:09
조회수
7,578

안녕하세요

지난번에 문의 드렸던것인데요  

시작시간과 종료시간을 주면 
각 동영상이 플레이 되야 합니다. 
 
 
시간별로 기록된 동영상인데  동영상을 로드할려면 파라메터가 추가적으로 더 필요해서 문의 드립니다.
 
start_time duration 이 표시되어야 합니다. 
 
 
 
WITH t AS ( 
 
select 1 rn , TO_DATE('2014-01-01 00:00:00','YYYY-MM-DD HH24:MI:SS') st_dt ,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
 
)
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
;
 
다음과 같은 식으로 가능할까요? 
 
 
 
번호 동영상시작(st_dt) 동영상 종료(ed_dt) 시작시간 종료시간 시작 길이
13 2014-01-01 오전 8:00:00 2014-01-01 오전 9:00:00 2014-01-01 오전 8:20:00 2014-01-01 오전 9:00:00 00:20:00 00:40:00
14 2014-01-01 오전 9:00:00 2014-01-01 오전 9:55:00 2014-01-01 오전 9:00:00 2014-01-01 오전 9:55:00    
15 2014-01-01 오전 9:55:00 2014-01-01 오전 10:25:00 2014-01-01 오전 9:55:00 2014-01-01 오전 10:10:00 00:00:00 00:15:00
 
 
감사합니다. 
 
 
 
 
 
 
 
이 글에 대한 댓글이 총 2건 있습니다.

SELECT a.rn
     , a.st_dt
     , a.ed_dt
     , GREATEST(a.st_dt, b.sdt) s_dt
     , LEAST   (a.ed_dt, b.edt) e_dt
     , SUBSTR(NUMTODSINTERVAL(
       CASE WHEN a.st_dt < b.sdt OR a.ed_dt > b.edt
            THEN GREATEST(a.st_dt, b.sdt) - a.st_dt
        END
       , 'day'), 12, 8) start_time
     , SUBSTR(NUMTODSINTERVAL(
       CASE WHEN a.st_dt < b.sdt OR a.ed_dt > b.edt
            THEN LEAST(a.ed_dt, b.edt) - GREATEST(a.st_dt, b.sdt)
        END
       , 'day'), 12, 8) duration
  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-03-17 18:36에 작성한 댓글입니다.
헉 혹시나 하고 들어와 봤는데 너무 감사합니다.
 
너무 신세만 져서 몸 둘바를 모르겠습니다.
 
마농님 너무 감사합니다.
 
제 마음을 글로 형언 할수는 없지만 정말 한줄의 쿼리에   많은 희열과 감사를  느낍니다.
 
디비와 프로그램 기획까지 다 해야 하니 버거워서 혼났지만 
 
마농님 덕에 큰 골치거리들을 많이 해결했습니다.
 
너무 감사합니다.

 

 

김태경(cranes)님이 2015-03-17 20:42에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40748오라클 tree 구조 질문좀 드립니다. [6]
ka
2015-03-19
8185
40747체적쿼리 질문입니다. [11]
초보자
2015-03-18
9894
40746쿼리 퀴즈입니다.(파스칼 삼각형) [1]
김흥수
2015-03-18
7241
40745마농님 지정시간 관련 sql 문의드립니다. [2]
김태경
2015-03-17
7578
40744그룹해서 최대 데이터 4개 출력 [2]
윤민근
2015-03-17
6606
40738[쿼리질문] 세로열을 가로열로 만들기 [4]
최혁준
2015-03-17
8237
40737아우터 조인 관련 질문 [1]
궁금
2015-03-16
7523
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다