MySQL索引优化
MySQL慢查询优化
一文详解MySQL各种锁及MVCC的使用场景及原理
最近遇到一个需求,大致内容是查询近七天内所有设备每天的工作时间和,里面涉及到日期格式转化,子查询,分组查询等问题,较为复杂,以此记录.
数据库内容:
工作开始时间(varchar)
工作结束时间(varchar)
日期转化方式:
DATE_FORMAT( 当前日期, '%Y-%m-%d'(目标格式) )
求时间间隔并且转化为秒:
TIMESTAMPDIFF(SECOND,时间A,时间B)
前七天分组:
where date_sub(curdate(),interval 7 day )<=date(a.t) group by days
最终查询代码:
select
sum(a.sec) as `time`,
DATE_FORMAT( a.t, '%Y-%m-%d' ) as days
from
(SELECT
TIMESTAMPDIFF(SECOND,DATE_FORMAT(task_start_time, '%Y-%m-%d %H:%i:%s'),DATE_FORMAT(task_end_time, '%Y-%m-%d %H:%i:%s'))AS sec,
task_start_time AS t
FROM
ii_device_tasks_report)
as
a
where
date_sub(curdate(),interval 7 day )<=date(a.t)
group by
days;