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