2012-03-23 54 views
-8

如何在oracle中只插入hh:mi中的時間以及如何通過比較時間來運行select查詢。在oracle中只插入時間

說明: 考慮醫院每天從上午9點到上午11點和下午6點到8點在醫院就診。 所以當我們運行選擇查詢來搜索在特定日上午10點訪問的醫生時。

請給出與代碼的解釋。

在此先感謝。

+0

這是一個糟糕的問題,你應該在問這裏之前嘗試自己解決它。一旦你嘗試過,發佈你的嘗試和任何你收到的錯誤消息,你會得到一些幫助。 – Ollie 2012-03-23 13:56:13

+2

你只想考慮時間,但你也說明你想「搜索在特定的日子*上午10點*訪問的醫生*」? – DCookie 2012-03-23 15:32:00

回答

0

你只需要基本的日期算術和普通的舊日期類型。

CREATE TABLE doctor_visits (
    doctor_id NUMBER NOT NULL, 
    in_time  DATE NOT NULL, 
    out_time  DATE NOT NULL 
) 
/

我想你想找到誰在上午10:00在醫院的醫生,而不是究竟誰在上午10點

SELECT doctor_id FROM doctor_visits 
where in_time < trunc(in_time) + NUMTODSINTERVAL(10,'HOUR') 
AND out_time > trunc(in_time) + NUMTODSINTERVAL(10,'HOUR') ; 

拜訪醫生我還沒有考慮過使用情況的In_time和out_time落在不同的日期,即說,下午11點和2點出。

,或者如果你想找到到底是誰在10:00 AM參觀了醫院醫生的名單,然後

SELECT doctor_id FROM doctor_visits where to_char(in_time,'HH:MI') = '10:00' ; 

但是,這將是查詢很奇怪的事情,因爲你真的不能肯定如果有人在那個特定的時間訪問。

+0

感謝您理解我的問題。我很困惑要使用什麼。那就是Date數據類型或數字數據類型。我想要一個介於in_time和out_time之間的醫生列表。 – 2012-03-23 17:32:31