2012-06-04 2 views
2
SELECT MIN (snap_id) AS FIRST_SNAP, 
    MAX (snap_id) AS LAST_SNAP, 
    MIN (BEGIN_INTERVAL_TIME) AS FIRST_QUERY, 
    MAX (END_INTERVAL_TIME) AS LAST_QUERY, 
    max(end_interval_time) - min(begin_interval_time) as "TIME_ELAPSED" 
FROM dba_hist_snapshot 
ORDER BY snap_id; 

2931 3103 5/28/2012 6:00:11.065 AM 6/4/2012 11:00:40.967 AM +07 05:00:29.902000 

마지막 열 출력을 7 (일 동안)로하고 싶습니다. 내가 trunc 시도하고 언급 한 다른 게시물처럼 추출하지만 구문을 올바르게 얻을 수없는 것. 어떤 아이디어?오라클의 두 개의 시간 소인 (일 수)의 차이

답변

3

귀하의 의견에 따르면 timestamp 열 (datetime이 아님)을 사용하고 있습니다. 당신은 시간의 차이를 검색 할 수 extract를 사용할 수있는 다음 trunc(.../24)을 일의 전체 수를 얻을 :

trunc(extract(hour from max(end_interval_time) - min(begin_interval_time))/24) 

을 또는 당신이 캐스팅 할 수있는 timestampdate A를 : 나는 시도

trunc(cast(max(end_interval_time) as date) - 
    cast(min(begin_interval_time) as date)) 
+0

이것은 하나 나에게 오류를 준다. "일관성없는 데이터 유형 : 예상 NUMBER 초가 간격이 있습니다" –

+1

추출 방법이 작동하지 않는 것 같습니다. 두 시간의 시간 차이 (다른 날은 고려하지 않음)가 "5"로만 출력되었습니다. 주조 방법이 작동했습니다! 도와 주셔서 감사합니다! –

관련 문제