SQL语句:
SELECT * FROM table
WHERE eventdate >= DATE(NOW())
AND eventtime > TIME(NOW())
ORDER BY eventdate ASC, eventtime ASC;
目标是选择接下来要发生的事件。只要在同一天没有两个事件,它就可以正常工作。例如:
Event 1, 11/17/2016 7:00am
Event 2, 11/17/2016 2:00pm
Event 3, 11/18/2016 9:00am
我希望选择事件2,因为它在17日上午7点通过。上面的陈述仍然会选择事件1.
答案 0 :(得分:1)
这应该有效:
SELECT * FROM table
WHERE eventdate > DATE(NOW())
OR
(eventdate = DATE(NOW()) AND eventtime > TIME(NOW()) )
ORDER BY eventdate ASC, eventtime ASC;
基本上你比较日期是将来(明天)还是日期是今天,时间过去了。
如果您的日期是将来的话,那么在这种情况下您并不关心时间。
试试吧。
答案 1 :(得分:0)
我需要将df2
和eventdate
eventtime
中存储的值存储在您的fields
上下文中。因为如果你正在检查table
,如果时间过去,就不应该选择这个事件。
答案 2 :(得分:0)
根据评论中的确定,问题在于数据库所在的服务器当前使用的时区。因此,并且您使用的是PHPmyAdmin,我相信您无权更改服务器时区。
您可能的解决方案是: