我编写了以下查询,该查询将尝试选择开始日期与当前日期无关的所有事件(我在表中有 start_date 和 end_date 字段):
$query = "SELECT id,title,start_date
FROM events
WHERE start_date > NOW() - INTERVAL 30 DAY AND city = '$cityName'
ORDER BY start_date DESC";
我意识到上述代码的唯一问题是,如果一个事件在 3 个月前开始,NOW()
那么它将不会显示。我去尝试重写它,但它没有工作。这就是我所管理的:
"SELECT id,title,start_date
FROM events
WHERE start_date >= NOW() - INTERVAL 30 DAY || start_date <= NOW() && end_date >= NOW() - INTERVAL 30 DAY";
我试图做的是选择开始日期大于或等于当前日期(NOW()
)的所有事件,甚至选择 start_date 可能小于当前日期但结束日期在之后的事件NOW()
。关于如何解决这个问题的任何建议?我希望它显示所有事件,只要它们还没有发生(当然这意味着结束日期不小于当前的实际日期)。
谢谢,
编辑:
$query = "SELECT id,title,start_date FROM events WHERE start_date > NOW() - INTERVAL 30 DAY AND city = '$cityName' ORDER BY start_date DESC";
$query_posted = "SELECT id,title,start_date FROM events WHERE start_date > DATE_SUB(NOW(), INTERVAL 1 MONTH) AND city = '$cityName' AND category = '$tag' ORDER BY start_date DESC";
第一个在我修改后加载了事件(不包括修改),但第二个失败了,我认为这是由于最后还有两个 AND。