SELECT
ROUND( SUM( recordTime ), 2 ) AS totalTimeOfOneDay,
DATE_FORMAT( date, '%Y-%m-%d' )
FROM
punchrecord
WHERE
studentID = '2019388888'
GROUP BY
DATE_FORMAT(date, '%Y-%m-%d')
执行结果:
这样的结果是不连续的,从9月17号直接跳到10月10号,当后端返回给前端后,画出的图标就不能很好的展现每天的时间情况。所以我们需要给没有数据的那天的时间设置为0,这里提供一种方法。
我们需要建立一个参照表(该参照表就包含连续的日期分布),通过左连接查询,就能获得连续的真实的时间分布。
- 首先第一步,建立num表
DROP TABLE IF EXISTS `num`;
CREATE TABLE `num` (
`i` int(11) NULL DEFAULT NULL
) ENGINE = MyISAM CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Fixed;
-- --------------