各位用户为了找寻关于Mysql根据时间查询日期的优化技巧的资料费劲了很多周折。这里教程网为您整理了关于Mysql根据时间查询日期的优化技巧的相关资料,仅供查阅,以下为您介绍关于Mysql根据时间查询日期的优化技巧的详细内容
例如查询昨日新注册用户,写法有如下两种:
? 1 2 3 4EXPLAIN
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字段上建立索引,查询极快!
附上日期转换函数
? 1 2 3 4 5 6 7DECLARE
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根据时间查询日期的优化技巧,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
原文链接:https://www.cnblogs.com/hdwang/archive/2018/03/02/8492034.html