例如查询昨日新注册用户,写法有如下两种:
explain select * from chess_user u where date_format(u.register_time,'%y-%m-%d')='2018-01-25'; explain select * from chess_user u where u.register_time between '2018-01-25 00:00:00' and '2018-01-25 23:59:59';
register_time
字段是datetime类型,转换为日期再匹配,需要查询出所有行进行过滤。而第二种写法,可以利用在register_time字段上建立索引,查询极快!
附上日期转换函数
declare yt varchar(10); #昨天 declare yt_bt varchar(19); #昨天开始时间 declare yt_et varchar(19); #昨天结束时间 #设置变量 set yt=date_format(date_add(now(),interval -1 day),'%y-%m-%d'); set yt_bt=date_format(date_add(now(),interval -1 day),'%y-%m-%d 00:00:00'); set yt_et=date_format(date_add(now(),interval -1 day),'%y-%m-%d 23:59:59');
总结
以上所述是小编给大家介绍的mysql根据时间查询日期的优化技巧,希望对大家有所帮助
需要了解更多数据库技术:Mysql根据时间查询日期的优化技巧,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/dtteaching/828093.html