Mysql根据时间查询日期的优化技巧
程序员文章站
2023-11-12 12:24:10
例如查询昨日新注册用户,写法有如下两种:
explain
select * from chess_user u where date_format(u.regi...
例如查询昨日新注册用户,写法有如下两种:
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根据时间查询日期的优化技巧,希望对大家有所帮助
上一篇: 城镇化步伐加快:农村电商将迎来黄金时期