我的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之后停止显示。
任何有关更改代码以保持活动直至结束日期的帮助都将受到赞赏。
由于
答案 0 :(得分:0)
假设您的events
行中包含sort_date
和end_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()
的所有内容;你可以直接在日期做比较。