Oracle

按範圍日期過濾行,僅獲取小時範圍內的行

  • April 27, 2020

我希望您過濾日期範圍之間的行,但我只希望您返回前一個日期範圍中包含的每一天的時間範圍的行。

例如,您想過濾掉 2020 年 3 月 1 日到 3 月 3 日之間的所有行,也只過濾掉 14:00 到 18:00 之間的行。

到目前為止,我可以在兩個日期之間或兩個小時之間進行過濾,但是當我將這兩件事放在一起時它不起作用。我沒有任何記錄。

and BEGIN_INTERVAL_TIME BETWEEN to_date('19/04/2020', 'DD/MM/YYYY') AND to_date('20/04/2020','DD/MM/YYYY')
and BEGIN_INTERVAL_TIME BETWEEN to_date('15:00:00', 'HH24:MI:SS') AND to_date('16:00:00','HH24:MI:SS')

問候,

SQL> select snap_id, begin_interval_time, end_interval_time from dba_hist_snapshot
    where begin_interval_time between date'2020-04-19' and date'2020-04-22'
    and begin_interval_time between trunc(begin_interval_time, 'DD') + 14/24 and trunc(begin_interval_time, 'DD') + 18/24
    order by 1;

  SNAP_ID BEGIN_INTERVAL_TIME       END_INTERVAL_TIME
---------- ------------------------- -------------------------
       68 19-APR-20 02.00.54.771 PM 19-APR-20 03.00.57.674 PM
       69 19-APR-20 03.00.57.674 PM 19-APR-20 04.00.00.561 PM
       70 19-APR-20 04.00.00.561 PM 19-APR-20 05.00.03.472 PM
       71 19-APR-20 05.00.03.472 PM 19-APR-20 06.00.06.333 PM
       92 20-APR-20 02.00.04.468 PM 20-APR-20 03.00.07.303 PM
       93 20-APR-20 03.00.07.303 PM 20-APR-20 04.00.10.168 PM
       94 20-APR-20 04.00.10.168 PM 20-APR-20 05.00.13.094 PM
       95 20-APR-20 05.00.13.094 PM 20-APR-20 06.00.15.965 PM
      116 21-APR-20 02.00.14.249 PM 21-APR-20 03.00.17.113 PM
      117 21-APR-20 03.00.17.113 PM 21-APR-20 04.00.19.990 PM
      118 21-APR-20 04.00.19.990 PM 21-APR-20 05.00.22.928 PM
      119 21-APR-20 05.00.22.928 PM 21-APR-20 06.00.25.839 PM

12 rows selected.

引用自:https://dba.stackexchange.com/questions/265939