1. 程式人生 > 資料庫 >mysql計算兩個時間的差以及保留小數點後3位

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);