在MySQL中,抓取start_date和end_date中的项


In MySQL grab items within start_date and end_date

我的MySQL数据库中列出了事件。

事件具有start_date(date)和end_date(date)字段。

在我的应用程序中,用户可以使用日历单击特定日期。那么,如果他们今天点击,他们会被带到/事件?day=2013-08-08,当天的所有事件都显示在页面上。

在我开始添加多日活动之前,这一直很有效。由于之前我只是向MySQL询问start_date==用户选择日期的所有事件,所以我只得到当天开始的事件,但我也想要可能在当天之前开始但当天仍在进行的事件。

如何查询这样的项目?所有从这一天开始的事件,或更早开始但到这一天尚未结束的事件。

SELECT ...
FROM yourtable
WHERE '2013-08-08' BETWEEN start_end AND end_date

其中

foo BETWEEN bar AND baz

是的SQL等价物

(bar <= foo) AND (foo <= baz)
where start_date>='$inputdate' AND end_date<='$inputdate'

应该这样做

如果尚未为仍在进行的任务设置结束日期:

where '2013-08-08' == start_date or end_date is null