我有一種情況,我需要在23:00至次日01:00之間每天舉辦一個活動。 我的表有最新的數據,這將是這樣的:在Oracle中的兩個字段之間查找當前時間
Start date | EndDate
31-05-2016 23:00:00 | 01-06-2016 01:00:00
已經數據庫這樣設計和應用現場。現在,我嘗試使用BETWEEN
聲明獲取數據,但是,由於ENDDate是第二天早上,我無需工作。
有人可以告訴如何正確提取這些數據。
我ORACLE
查詢
SELECT COUNT(*) INTO P_OUTPUT FROM MAINTENANCE_LOG WHERE
NVL(RECCURING_TYPE,'O')='D' AND ACTIVE_STATUS='Y' AND
TO_CHAR(SYSDATE,'HH24MISS') BETWEEN TO_CHAR(START_DATE,'HH24MISS') AND TO_CHAR(END_DATE,'HH24MISS');
我試圖再次將這個至今,但它也不會與結束日期的工作。
更新: 在我的要求中,我只需要檢查當前時間是在startdate還是enddate時間之間。我需要每天運行這個查詢,它應該在每天的23:00到1:00之間進行一次活動。
注意:如果我在2015年5月31日運行Sysdate between startdate and enddate
的查詢,我將得到true/false。但是,如果我在晚上第二天運行,我只會因爲EndDate已經結束而失敗。所以,我不能使用日期查詢之間的正常。
你爲什麼to_charing日期字段之間用?不要to_char他們。簡單地比較start_date和end_date之間的sysdate ...您要求引擎比較TEXT值。不應該在ondates完成... – xQbert
關於start_date和end_date之間的sysdate是什麼? –
爲什麼我在做To_CHAR即使我的數據有日期我只需要檢查當前時間是23:00到01:00之間。它應該給我一個基於它的計數(*)。 – smilu