如何在oracle中仅插入hh:mi中的时间以及如何通过比较时间来运行select查询。
说明: 我们每天早上9点到11点,下午6点到晚上8点考虑去医院就诊。 因此,当我们运行一个选择查询来搜索在某一天上午10点访问的医生时。
请用代码说明。
提前致谢。
答案 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' ;
但这对于查询来说是一件非常奇怪的事情,因为你真的无法确定是否有人在那个特定的时间访问。