ORACLE SQL小时范围

约瑟夫

我有一个问题,我有一个3列的表

- date - varchar2   - varchar2 -   
| date | start_hour | end_hour |  

我需要进行验证以确保不重叠小时范围。
例如:

| date  | start_hour | end_hour |  
| date1 | 09:00AM    | 09:30AM  |  
| date1 | 10:30AM    | 11:30AM  |  
| date1 | 01:00PM    | 03:00PM  |  

假设3行的日期相同。
我需要的是,这些范围
不能重叠,我不能插入这样的范围,例如
start_hour = 08:00 AM和end_hour = 09:20 AM,因为09:00 AM和09:30 AM之间的范围已经存在,因此,新范围发生冲突表中存在的范围。我尝试了很多查询,但没有之间,插入的end_hour必须小于表中的start_hour。有人知道怎么做吗?

约瑟夫

我已经找到了解决问题的方法,作为对我的问题的评论的建议,当我更改小时的格式和新小时的格式时,它可以很好地工作。这是将来遇到同样问题的人的代码。

DECLARE
  l_count NUMBER(1) := 0;
BEGIN

  SELECT COUNT(*)
  INTO   l_count
  FROM   table
  WHERE  start_hour <= :new_start_hour
  AND    end_hour   >= :new_end_hour
  AND    date = :date
  AND    ROWNUM     = 1;
  dbms_output.put_line(l_count);

END;
/

感谢我们的所有帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章