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(天数)。我已经尝试过截断和提取,就像提到的其他一些帖子一样,但似乎无法使语法正确。有什么想法吗?
答案 0 :(得分:4)
根据您的评论,您使用的是timestamp
列,而不是datetime
。您可以使用extract
来检索小时差异,然后使用trunc(.../24)
来获取整个天数:
trunc(extract(hour from max(end_interval_time) - min(begin_interval_time))/24)
或者您可以将timestamp
投射到date
:
trunc(cast(max(end_interval_time) as date) -
cast(min(begin_interval_time) as date))