我有一个表索引列。我想选择特定日期的所有行。以前我一直在使用这样的:选择行日期时间=日期,仍然使用索引
SELECT *
FROM `table`
WHERE DATE(date_column) = '2016-04-12';
这工作得很好,但我已经注意到性能问题,由于MySQL不使用索引,一旦我应用DATE()
功能。我也试过:
SELECT *
FROM `table`
WHERE SUBSTR(date_column,1,10) = '2016-04-12';
无济于事。到目前为止,似乎工作的唯一的事情是:
SELECT *
FROM `table`
WHERE date_column >= '2016-04-12'
AND date_column < '2016-04-13'
这最后一个查询成功使用该索引,但我想知道是否有一种方法,只有一个条件做到这一点。
为什么在您的第一个查询中不能使用'date_column ='2016-04-12 00:00:00.000'?或者在2016-04-12的最后一秒之间。 – Edu