我已经写了下面的查询,将尝试选择所有的事件,其中起始日期是从当前日期东西(我有表起始日期日期和结束日期字段):mysql表选择不上市逻辑
$query = "SELECT id,title,start_date
FROM events
WHERE start_date > NOW() - INTERVAL 30 DAY AND city = '$cityName'
ORDER BY start_date DESC";
唯一上面的代码有问题,因为我意识到如果一个事件在NOW()
之前3个月开始,那么它就不会显示。我去了,并试图重新写它,但它没有奏效。这就是我管理:
"SELECT id,title,start_date
FROM events
WHERE start_date >= NOW() - INTERVAL 30 DAY || start_date <= NOW() && end_date >= NOW() - INTERVAL 30 DAY";
我试图做的是选择所有事件,其中起始日期是大于或等于当前日期(NOW()
),甚至与起始日期选择事件可能低于当前时间未定结束日期是在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";
我修改了它(不包括修改),但第二个失败,我认为这是由于另外两个和的在后的第一个载入的活动结束。
'当然,这意味着结束日期的不低于当前实际date'少那不是意味着你需要'WHERE END_DATE> = NOW()'? – lanzz
@lanzz:你为什么不把它写成答案? –