Query

從前一天到今天創建每日搜尋查詢

  • August 27, 2021

我正在嘗試在 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)

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