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 38977 게시물 읽기
No. 38977
전후 데이터의 시간차이 계산시
작성자
달타냥
작성일
2011-10-17 21:19ⓒ
2011-10-17 21:21ⓜ
조회수
5,586

질문한개 드립니다.

제품 발송 내역을 가지고 데이터를 추출하는데...

전후 데이터의 차이가 5분이내인 데이터만을 추출하려고 합니다.

RANGE BETWEEN INTERVAL '5' MINUTE PRECEDING AND INTERVAL '5' MINUTE FOLLOWING ...

이라는 함수가 있더군요.

그런데 해당 윈도우 함수로 구현을 할려고 하니... 시간 컬럼이 한개만 있어야 되는거 같습니다.

근데 제가 추출하려고 하는 데이터는 접수시간 발송시간 이라는 컬럼 두개가 있습니다.

하루 데이터의 전 데이터의 발송시간과 후 데이터의 접수시간이 5분이내인것들만 순차적으로 추려나가야 하는데 응용이 안되서 도움을 요청드립니다.

이럴경우 보통 어떻게 처리를 하시는지요?

조언을 부탁드립니다.

 

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

LAG, LEAD 를 이용해 시간차이를 계산하세요.

마농(manon94)님이 2011-10-18 10:22에 작성한 댓글입니다.

접수시간, 발송시간이 같은 행의 컬럼인가요?

만약 같은 행의 컬럼라면 date타입은 사칙연산이 가능하므로 계산해서 비교하시면 됩니다.
날짜1 - 날짜2 = 일수 입니다.  하루는 24시간*60분*60초 이므로 초까지 구할 수 있습니다.
아래 쿼리처럼 하시면 5분이내인 건만 뽑을 수 있습니다.
------------------------------------------------------------
select num, rcv_dt, snd_dt,
      (snd_dt - rcv_dt)*24*60*60 as sec --초
from (
    select 1 as num,
    to_date('20111120090000','yyyymmddhh24miss') as rcv_dt,
    to_date('20111120090301','yyyymmddhh24miss') as snd_dt
    from dual
    union all
    select 2 as num,
    to_date('20111120090000','yyyymmddhh24miss') as rcv_dt,
    to_date('20111120090401','yyyymmddhh24miss') as snd_dt
    from dual
    union all
    select 3 as num,
    to_date('20111120090000','yyyymmddhh24miss') as rcv_dt,
    to_date('20111120090501','yyyymmddhh24miss') as snd_dt
    from dual
)
--where (snd_dt - rcv_dt)*24*60*60 <= 300 --5분(5*60)
where (snd_dt - rcv_dt) <= 300/(24*60*60)
------------------------------------------------------------
결과
    NUM RCV_DT              SND_DT                  SEC
------- ------------------- ------------------- -------
      1 2011-11-20 09:00:00 2011-11-20 09:03:01     181
      2 2011-11-20 09:00:00 2011-11-20 09:04:01     241
2 rows selected.

 

허종진(ptculi)님이 2011-10-20 14:05에 작성한 댓글입니다.
이 댓글은 2011-10-20 14:15에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
38982특정문자로 나누는 방법을 알고 싶읍니다. [2]
용가리
2011-10-18
4712
38980trigger 질문 드립니다..꼭 부탁해요...^^;; 아 머리야... [1]
박정호
2011-10-18
4222
38978GREATEST에서 최대값 갯수 및 위치 알아내기 [3]
이장
2011-10-17
4146
38977전후 데이터의 시간차이 계산시 [2]
달타냥
2011-10-17
5586
38975이력조회쿼리문을 만들려고합니다. [2]
오라초
2011-10-17
4369
38970테이블스페이스말고 테이블단위로 복원이되나요? [2]
임서희
2011-10-14
3654
38969fuction 생성시 질문입니다. [4]
초보
2011-10-14
3693
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다