mysql检查其他日期范围内的日期范围
Posted
技术标签:
【中文标题】mysql检查其他日期范围内的日期范围【英文标题】:mysql check date range in other date range 【发布时间】:2014-03-11 09:15:30 【问题描述】:我有一个日期范围的行
title | fromDate | tillDate
------------------------------------
my event | 2014-03-12 | 2014-03-13
my event 2 | 2014-03-14 | 2014-03-17
my event 3 | 2014-03-01 | 2014-03-10
my event 4 | 2014-03-01 | 2014-03-09
现在我有第二对日期范围,我想检查事件是否在日期范围内..例如
checkStartDate = 2014-03-10 checkEndStartDate = 2014-03-14
所以范围内将是 "my event" 、 "my event 2" 和 "my event 3" ...
此时我只想尝试获取我的范围之间的所有日期(因此在 2014 年 3 月 10 日和 2014 年 3 月 14 日之间)并为它写一个大查询......但必须有一个更简单的正确的方法是什么?
【问题讨论】:
mysql range date overlap check的可能重复 【参考方案1】:SELECT title FROM table WHERE (DATE('2014-03-10') BETWEEN DATE(fromDate) AND DATE(tillDate) OR DATE('2014-03-14') BETWEEN DATE(fromDate) AND DATE(tillDate) OR (DATE('2014-03-10') <= DATE(fromDate) AND DATE('2014-03-14') >= DATE(tillDate)))
【讨论】:
【参考方案2】:使用此代码
select * from events_table where fromDate >= checkStartDate and tillDate <= checkEndStartDate
【讨论】:
【参考方案3】:试试这个:
select title from table
where checkStartDate <= fromDate
and checkEndStartDate <= tillDate
我已经编辑了我的答案。
【讨论】:
以上是关于mysql检查其他日期范围内的日期范围的主要内容,如果未能解决你的问题,请参考以下文章