从日期间隔中选择一个子范围的数据

时间:2015-02-01 21:03:43

标签: mysql date datetime

我有一个事件数据库。每个活动都有开始日期和结束日期。我有一个插件可以将数据提取到jquery日历中,询问(json)开始日期和结束日期。

假设我在start date = 01-02-2015end date = 11-02-2015举办了一次“特别活动”。

当我致电getevent.php?start=01-02-2015&end=28-02-2015时,我会收到2月份的所有活动(“获取所有活动的开始日期> = 01-02-2015&& end date< = 28-02 -2015)。当我想获取不同间隔的数据时会出现问题。

假设我想在2月2日至8日举办活动:当我致电getevent.php?start=02-02-2015&end=08-02-2015时,我什么都没得到(因为我的“特别活动”不适合开始日期> = 02-02- 2015年&&结束日期< = 08-02-2015查询)。

你知道热解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你想要获得所有至少一天共同并且查询范围的事件,对吗?

假设"变量" eventStartDateeventEndDaterangeStartDaterangeEndDate您需要找到符合条件的行:

(eventStartDate >= rangeStartDate AND eventStartDate <= rangeEndDate)
OR
(eventEndDate >= rangeStartDate AND eventEndDate <= rangeEndDate)

假设rangeStartDate总是小于或等于rangeEndDate(事件的日期相同),可以简化为:

eventEndDate >= rangeStartDate AND eventStartDate <= rangeEndDate