mysql - 是否有任何 MySQL 函数可以获取开始日期或结束日期在给定开始日期和结束日期之间的所有行?

标签 mysql

我有一个事件表,其中记录了开始和结束时间作为 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/

相关文章:

php - 这个 PHP 错误是什么意思?

mysql - 选择不同但具有列的值

MultiSelectList 中的 C# .NET 查询不起作用

php - 查询总是在行数计数上返回 1

java - 在 mysql 数据库中插入一行显示两次

PHP/MySQL : Path Error: [function. require]:无法打开流:

php - 从数据库中选择多行 [php]

php - CakePHP 数据库查询 DISTINCT/GROUP BY 错误

javascript - 使用 javascript 和 php 推送 MySQL 数据

mysql - 如何从sql数据库中获取字段名称类型