Query
從前一天到今天創建每日搜尋查詢
我正在嘗試在 maximo 中為工作中的設備進行自定義搜尋查詢。我有一個我想要的特定時間範圍,但它總是在前一天。範例:今天是 2021 年 8 月 26 日。我想查詢 2021 年 8 月 25 日凌晨 5:30 到 2021 年 8 月 26 日凌晨 2:30 的查詢。這是每天的,所以 27 日意味著我需要從 26 日到 27 日,依此類推。
以下是我當天手動操作時的顯示方式。
(reportdate <= TO_TIMESTAMP ('2021-08-24 06:30:00.000' , 'YYYY-MM-DD HH24:MI:SS.FF') and persongroup = 'LF WES MAINT' and siteid = 'ARD-WES' and reportdate >= TO_TIMESTAMP ('2021-08-23 09:30:00.000' , 'YYYY-MM-DD HH24:MI:SS.FF'))
在大多數情況下,與時間戳相關的查詢依賴於 SQL 方言。看起來您正在使用 Oracle,因此:
SELECT TRUNC(SYSTIMESTAMP) - 1 + INTERVAL '05:30' HOUR TO MINUTE from_, TRUNC(SYSTIMESTAMP) + INTERVAL '02:30' HOUR TO MINUTE to_ FROM dual;
首先,您使用函式從目前時間戳中刪除時間
TRUNC
,然後根據需要減去天數,然後將時間間隔添加到截斷日期。如果我們將它們合併到您的條件集中,它將如下所示:
(reportdate <= TRUNC(SYSTIMESTAMP) + INTERVAL '02:30' HOUR TO MINUTE and persongroup = 'LF WES MAINT' and siteid = 'ARD-WES' and reportdate >= TRUNC(SYSTIMESTAMP) - 1 + INTERVAL '05:30' HOUR TO MINUTE)