我网站的用户将能够创建事件。他们将分别设定日期和时间。该事件将保存到包含单独日期和时间列的 mysql 数据库中。
我想查询数据库以返回即将发生但未通过的事件。即事件日期是今天或将来,如果事件日期是今天,请检查事件时间尚未过去。
我不知道它的语法,而且我似乎无法在任何地方找到它。
如果有人知道执行此操作的好方法,我将非常感谢您的帮助。
最佳答案
在 SQL 中有效表达这一点并利用日期和/或时间列上的任何索引的最简单方法是这样的查询:
SELECT *
FROM your_table
WHERE date_column > current_date()
OR (date_column = current_date() AND time_column > current_time())
根据您使用的 MySQL 版本以及表的索引方式,优化器有可能更喜欢将查询表示为两个 SELECT 联合在一起以避免 OR:
SELECT *
FROM your_table
WHERE date_column > current_date()
UNION
SELECT *
FROM your_table
WHERE date_column = current_date()
AND time_column > current_time()
关于mysql - 使用 MySQL CURDATE() 和 CURTIME() 返回即将到来但未通过的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5304273/