您好,登錄后才能下訂單哦!
Oracle_SQL 部分 _ 時間轉換 ( 案例一 )
問題:
同事反饋XXX 系統里記錄的耗時為字符類型,通過execl 不方便計算各個耗時統計,咨詢我是否有好的方法;
思路:
數據帶有天、小時、分,字符類型無法直接計算,可以通過oracle 數據庫將天、小時、分鐘數據單獨拆分出來,即把天和小時都轉換成分鐘,最終耗時字段只有分鐘,方便后期運算;
步驟如下:
1 將exec 數據導入到Oracle 數據庫里;
2 查詢數據
select 流程最長耗時 from 流程監控 ;
3 通過substr 截取字符串,再加上instr 獲取位置,可以實現將天、小時、分拆分出來;
--- 天
select 流程最長耗時 , nvl ( substr ( 流程最長耗時 , 1 , instr ( 流程最長耗時 , ' 天' , - 1 ) - 1 ),0 )天 from 流程監控 ;
--- 小時
select
流程最長耗時 ,
substr ( 流程最長耗時 , instr ( 流程最長耗時 , ' 天' ) + 1 , instr ( 流程最長耗時 , ' 小時' ) - instr ( 流程最長耗時 , ' 天' ) - 1 ) 小時
from
流程監控 ;
--- 分鐘
select
流程最長耗時 ,
substr ( 流程最長耗時 , instr ( 流程最長耗時 , ' 小時' ) + 2 , instr ( 流程最長耗時 , ' 分' ) - instr ( 流程最長耗時 , ' 小時' ) - 2 ) 分鐘
from
流程監控 ;
4 將天、小時轉換成分鐘,并求出總分鐘數
select
流程最長耗時 ,
nvl ( substr ( 流程最長耗時 , 1 , instr ( 流程最長耗時 , '天' , - 1 ) - 1 ), ) * 1440 + substr ( 流程最長耗時 , instr ( 流程最長耗時 , '天' ) + 1 , instr ( 流程最長耗時 , '小時' ) - instr ( 流程最長耗時 , '天' ) - 1 )* 60 + substr ( 流程最長耗時 , instr ( 流程最長耗時 , '小時' ) + 2 , instr ( 流程最長耗時 , '分' ) - instr ( 流程最長耗時 , '小時' ) - 2 )
from
流程監控 ;
歡迎關注我的微信公眾號"IT小Chen",共同學習,共同成長!!!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。