假如有一个表TableTest,已为CREATE_TIME字段设置索引,取值如'2017-11-12 21:52:49'。

那么

(1)

sql写法:DATE_FORMAT(CREATE_TIME,'%Y-%m-%d')>= '2017-11-14'

结果:不会使用索引: 

(2)

sql写法:CREATE_TIME <=  '2017-11-14 23:59:59'

结果:会使用索引:

 

因为数据库做的索引都是用原始数据,如果sql语句做了处理,那这个就已经是新的一个数据了(临时数据),数据库并没有建立索引,也就无法用到。