0

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

事件有一个 start_date(日期)和 end_date(日期)字段。

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

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

我怎样才能查询这样的项目?在这一天开始的所有事件,或者更早开始但到这一天尚未结束的所有事件。

4

3 回答 3

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

在哪里

foo BETWEEN bar AND baz

是 SQL 等价物

(bar <= foo) AND (foo <= baz)
于 2013-08-08T15:23:40.540 回答
0
where start_date>='$inputdate' AND end_date<='$inputdate'

应该这样做

于 2013-08-08T15:24:19.677 回答
0

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

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

于 2013-08-08T15:27:12.887 回答