MySQL DATE_SUB函数无法按预期工作

时间:2012-12-10 18:08:11

标签: mysql

我有以下查询,以获取事件。

SELECT 
  * 
FROM
  events_table 
WHERE event_date > DATE_SUB(NOW(), INTERVAL 1 DAY)
ORDER BY event_status ASC,
  event_date ASC 

我想做的就是返回event_date为today

的所有行

我哪里出错了? 谢谢你的帮助

2 个答案:

答案 0 :(得分:6)

你的where子句如何:

WHERE DATE(event_date) = DATE(NOW())

另一个不会阻止在event_date上使用索引的选项:

WHERE event_date BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 DAY)

答案 1 :(得分:2)

使用CURDATE()

SELECT 
  * 
FROM
  events_table 
WHERE event_date > CURDATE()
ORDER BY event_status ASC,
  event_date ASC 

这假设event_date将来不会......否则你也想要使用DATE()函数:

WHERE DATE(event_date) = CURDATE()