mysql - 选择月份位于开始日期和结束日期之间的行的更好方法

标签 mysql where-clause

假设要考虑的月份是 2013 年 10 月,我想提取 2013 年 10 月 位于开始日期和结束日期之间的所有行。

我目前在我的 WHERE 子句中使用它:

WHERE (start_date >= '2013-10-01' AND end_date < '2013-11-01') OR // between 1st and 31st
      (start_date >= '2013-10-01' AND start_date < '2013-11-01') OR // start falls in oct'13
      (end_date >= '2013-10-01' AND end_date < '2013-11-01') // end falls in oct'13

这几乎完成了开始日期和结束日期在 13 年 10 月 之外的情况下的工作。例如,它将错过开始日期为 2013-05-01 和结束日期为 2014-02-22

的行

我确信在 WHERE 中会使用一种简短而漂亮的方法,而不是我目前遵循的长方法。有什么建议吗?

最佳答案

WHERE start_date < '2013-11-01' And end_date >= '2013-10-01'呢?

关于mysql - 选择月份位于开始日期和结束日期之间的行的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19874928/

相关文章:

mysql - 简单的更新查询需要很长时间才能在 MySQL 中执行

mysql - 合并多个表时使用ID进行排序

c# - 使用 ASP.net 打开与 MySQL 的连接

php - android将空行插入mysql

php - 使用数组过滤 SQL 查询

MySQL - 返回值=3的行号

for-loop - 我可以在 swift 的 for 循环中使用 'where' 吗?

PHP PDO UPDATE MySQL 多个表

mysql - 在表中,如何通过保留其他列的引用来选择一列的不同值?

mysql - WHERE 子句中条件的顺序会影响 MySQL 的性能吗?