我有一个事件表,其中记录了开始和结束时间作为 MySQL DATETIME 对象(格式为 YYYY-MM-DD HH:MM:SS
)。我想查找所有事件发生在特定日期范围内。但是,事件可以跨越多天(并且超出我的日期范围,但如果它们与我的日期范围重叠 1 秒或更多,我想返回它们)。
建议?
最佳答案
这将找到完全包含在范围内的每个事件:
SELECT * FROM table WHERE start_date BETWEEN start_of_range AND end_of_range
AND stop_date BETWEEN start_of_range AND end_of_range
这将查找事件的任何部分与范围的任何部分重叠的任何事件:
SELECT * FROM table WHERE start_date <= end_of_range
AND stop_date >= start_of_range
关于mysql - 是否有任何 MySQL 函数可以获取开始日期或结束日期在给定开始日期和结束日期之间的所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56495330/