检查时间段重叠问题?

blackwh 2005-07-04 08:46:53
插入一条数据时,检验原有记录是否存在有时间段重叠的?

我现在的语句是:(kssj 开始时间,jzsj 截止时间)
( kssj < :ldt_kssj and jzzj > :ldt_jzsj ) //包含
or ( kssj > :ldt_kssj and jzzj < :ldt_jzsj ) //被包含
or ( kssj < :ldt_kssj and jzzj < :ldt_jzsj ) //左包含
or ( kssj > :ldt_kssj and jzzj > :ldt_jzsj ) //右包含


我觉得可以简练该条件的,但是....

求帮助!
...全文
171 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
blackwh 2005-07-07
  • 打赏
  • 举报
回复
to wuzd(礻兀):

不需要得到//包含//被包含//左包含//右包含 这些关系

但是你的条件中并没有包含"kssj < :ldt_kssj and jzzj > :ldt_jzsj" 的情况

即时间段一 : kssj |---------------------| jzsj
时间段二 :情况1 ldt_kssj |-------| ldt_jzsj


谢谢
blackwh 2005-07-04
  • 打赏
  • 举报
回复
时间段一 : kssj |---------------------| jzsj
时间段二 :情况1 ldt_kssj |-------| ldt_jzsj
时间段二 :情况2 ldt_kssj |-----------------------------| ldt_jzsj
时间段二 :情况3 ldt_kssj |----------------------| ldt_jzsj
时间段二 :情况4 ldt_kssj |-------| ldt_jzsj



插入一条数据时,检验原有记录是否存在有时间段重叠的
blackwh 2005-07-04
  • 打赏
  • 举报
回复
两个时间段有重叠的地方,就如集合一\集合二又交集的情况(包含\被包含\部分包含)

leborety 2005-07-04
  • 打赏
  • 举报
回复
您这不是在取全部时间啊?和不写有什么区别?

要不就是没明白你的意思,说清楚点,什么是时间段重叠
wuzd 2005-07-04
  • 打赏
  • 举报
回复
你是否需要明确得到, //包含//被包含//左包含//右包含 这些关系吗?
不需要的话,你就直接
where (kssj between ldt_kssj and ldt_jzsj) or (jzsj between ldt_kssj and ldt_jzsj )
就可以判断了吧?

17,089

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧