我有一個表索引列。我想選擇特定日期的所有行。以前我一直在使用這樣的:選擇行日期時間=日期,仍然使用索引
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