1. 程式人生 > >sql 時間相減 得到 毫秒/秒/分鐘/小時/天等

sql 時間相減 得到 毫秒/秒/分鐘/小時/天等

想起幾個月之前接到一個需求,要統計伺服器對每個請求的大致處理時間。幸好對每個請求都記了日誌到資料庫。因此寫了一個時間相減的sql。

select t1.id id,
       t1.requrl requsetUrl,
       t1.requesttime requestTime,
       t1.responsetime responseTime,
       extract(day from t1.intv) * 24 * 60 * 60 * 1000 +
       extract(hour from t1.intv) * 60 * 60 * 1000 +
       extract(minute
from t1.intv) * 60 * 1000 + extract(second from t1.intv) * 1000 operTime from (SELECT t.resp_time - t.reqs_time AS intv, t.id id, t.reqs_url reqUrl, t.reqs_time requestTime, t.resp_time responseTime from t_log t where t.resp_time is
not null) t1 order by operTime desc

得到結果如圖:
這裡寫圖片描述

上圖中,資料庫是oralce, t_log 的兩個時間欄位,reqs_time(請求時間),resp_time(響應時間) 的欄位型別都是 timestamp。 operTime 就是兩個時間相減得到的值(毫秒),差值有點兒大(測試環境資料,請忽略,哈哈)。毫秒值都得到了,那秒、分鐘、小時等肯定也能得到了。