欢迎光临
我们一直在努力

Oracle_SQL部分_时间转换(案例一)

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",共同学习,共同成长!!!




赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。