只在oracle中插入时间[关闭]
Posted
技术标签:
【中文标题】只在oracle中插入时间[关闭]【英文标题】:insert only time in oracle [closed] 【发布时间】:2012-04-08 01:40:49 【问题描述】:如何在 oracle 中仅在 hh:mi 中插入时间以及如何通过比较时间来运行选择查询。
说明: 让我们考虑每天上午 9 点到 11 点和下午 6 点到 8 点去医院看医生。 因此,当我们运行选择查询来搜索特定日期上午 10 点就诊的医生时。
请用代码说明。
提前致谢。
【问题讨论】:
这是一个糟糕的问题,您应该先尝试自己解决,然后再在这里提问。尝试后,发布您的尝试和收到的任何错误消息,您将获得一些帮助。 您只想考虑时间,但还声明要“搜索在特定日期上午 10 点就诊的医生”? 【参考方案1】:您只需要基本的日期算术和普通的旧日期类型。
CREATE TABLE doctor_visits (
doctor_id NUMBER NOT NULL,
in_time DATE NOT NULL,
out_time DATE NOT NULL
)
/
我假设您想查找上午 10:00 在医院的医生,而不是正好在上午 10:00 就诊的医生
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:00 和凌晨 2:00。
或者,如果您想查找恰好在上午 10:00 到医院就诊的医生列表,那么
SELECT doctor_id FROM doctor_visits where to_char(in_time,'HH:MI') = '10:00' ;
但查询起来会很奇怪,因为你真的无法确定是否有人在那个特定时间访问。
【讨论】:
感谢您理解我的问题。我对使用什么感到困惑。那是日期数据类型或数字数据类型。我想要一个介于 in_time 和 out_time 之间的医生列表。以上是关于只在oracle中插入时间[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何将这种特定格式的当前日期正确设置到 Oracle DB 上的这个插入查询中? [关闭]