2016-03-09 34 views
0

目前我獲取數據,每1小時:前一天的數據使用Oracle 11g

create_date >= sysdate -1/24 

當進程在午夜12點和日期更改爲第二天,反正是有在Oracle將在前一天晚上11點到12點之間輸入數據。

感謝

+0

您的查詢應該這樣做。如果不是,請提供樣本數據和期望的結果。 –

回答

0

如果你不運行在午夜SQL那麼你可以使用TRUNC函數來完成你想要的是這樣的:

create_date between trunc(sysdate) - 1/24 and trunc(sysdate) 
0

如果你正在運行的過程中每隔一小時,你會拿起前一小時。例如,如果您在上午12:10運行,那麼您的子句將從前一天的下午11:10到當天的上午12點10分收起。

如果你有一定回暖絕對一切,我建議你改變你的邏輯。如果不這樣做,你的程序不因某些原因運行,如數據庫正在維護中,你會錯過一些處理記錄

當你的程序啓動,捕捉當前的日期/時間,並將其存儲在一張桌子裏。當您的程序運行時,獲取該日期並使用該最後一個值作爲起始值:

create_date between last_date and procedure_start_date