MySQL判断时间段是否重合的两种方法
吾爱主题
阅读:193
2024-04-02 18:54:53
评论:0
两种写法。如图,4种重合情况和2种不重合情况。
第一种写法:
?
1 2 3 4 5 6 | -- 时间段 a,b SELECT * FROM table WHERE (start_time >= a and end_time <= b) -- 被包含了 or (end_time >= a and end_time <=b) or (start_time >= a and start_time <=b) or (start_time <= a and end_time >=b) |
解析:where后的4个条件分别代表了图中4种重合的情况。
但是第一种情况被2和3包含了,所以简化一下写法:
?
1 2 3 4 | SELECT * FROM table WHERE (end_time >= a and end_time <=b) or (start_time >= a and start_time <=b) or (start_time <= a and end_time >=b); |
第二种写法:
?
1 | SELECT * FROM table WHERE not (start_time > b or end_time < a); |
到此这篇关于MySQL判断时间段是否重合的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://www.cnblogs.com/chenyablog/p/14644706.html
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。