mysql计算两个时间的差以及保留小数点后3位
测试时需要验证页面展示的数据是否正确,如下页面展示所示,验证平均耗时以及数量是否正确
1、需求:耗时=结束时间-开始时间,平均耗时=总耗时/数量
2、看表的基本数据,开始时间和结束时间格式如:2020-12-20 12:09:23.123
3、先计算两个时间差
SELECT UNIX_TIMESTAMP('2020-12-20 12:09:23.123') - UNIX_TIMESTAMP('2020-12-20 12:09:23.121')
结果是0.002,实际的结果应该是2毫秒,所以需要把所得结果*1000
4、核对页面数据
SELECT t.node AS '节点', COUNT(1) AS '数量', ROUND(SUM(t.hs)/COUNT(1) , 3) AS '平均耗时' FROM (SELECT a.nodeNo AS node , a.`startTime`, a.`endTime`, ((UNIX_TIMESTAMP(a.`endTime`)-UNIX_TIMESTAMP(a.`startTime`)) *1000) AS hs FROM tb1 a WHERE 具体的查询条件 ) t GROUP BY t.node ;
查询后可得到真实的平均耗时值,与列表展示的不一样,分析数据可知是页面展示的数据未除数量,所以页面展示的数据有误
5、补充:保留小数点后3位的方法
-- 不四舍五入,直接截取 SELECT TRUNCATE(4545.1366,3);
-- 四舍五入 SELECT ROUND(4545.1366,3);
-- 四舍五入,但是中间有逗号隔开 SELECT FORMAT (4545.1366,3);
作者:simplesally
出处:https://www.cnblogs.com/simple1025/
说明:本文版权归作者和博客园共有,欢迎转载和提出建议,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。