在end_date之后停止显示事件

时间:2014-10-13 23:58:54

标签: php mysql datetime

我的php页面上有以下代码,用于显示今天开始的mysql数据库中的事件:

SELECT *
FROM events
WHERE DATE_FORMAT(sort_date, '%Y-%m-%d') >= Date_Format(Now(), '%Y-%m-%d')
  AND authorize = 1
ORDER BY sort_date ASC

它只显示今天开始的日历活动,而不是昨天或上周,这段代码运行良好。

某些活动的持续时间超过24小时,因此我们希望活动不会显示"" end_date

所以从本质上讲,它只显示从NOW开始的事件,并在end_date之后停止显示。

任何有关更改代码以保持活动直至结束日期的帮助都将受到赞赏。

由于

1 个答案:

答案 0 :(得分:0)

假设您的events行中包含sort_dateend_date,这就是您需要的内容。

SELECT whatever
  FROM events
 WHERE sort_date >= CURDATE()
   AND end_date  < CURDATE() + INTERVAL 1 DAY
    etc etc etc

表达式< CURDATE() + INTERVAL 1 DAY选择end_date所有的项目,直到但不包括明天的第一个时刻。

请注意,您不需要在问题中显示DATE_FORMAT()的所有内容;你可以直接在日期做比较。