只插入oracle中的时间

时间:2012-03-23 13:37:54

标签: oracle date-arithmetic

如何在oracle中仅插入hh:mi中的时间以及如何通过比较时间来运行select查询。

说明:  我们每天早上9点到11点,下午6点到晚上8点考虑去医院就诊。 因此,当我们运行一个选择查询来搜索在某一天上午10点访问的医生时。

请用代码说明。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您只需要基本的日期算术和普通的旧日期类型。

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

我认为你想找到上午10点在医院的医生,而不是在上午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点准确访问医院的医生名单,那么

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

但这对于查询来说是一件非常奇怪的事情,因为你真的无法确定是否有人在那个特定的时间访问。