首页 > 解决方案 > 将格式为 35:23:12 的 VARCHAR 转换为我可以求和的数据类型

问题描述

我有以下格式的 varchar 数据:

示例 1 - 00:00:06

示例 1 - 372:25:27

它代表小时:分钟:秒

我需要能够将其转换为我可以总结的数据类型,我只需要小时和分钟。无论如何要转换这些数据,以便我可以通过查询对其进行求和?

注意我不能改变在别人的数据库上做一些工作的表。

标签: sqloracle

解决方案


使用正则表达式将拆分您的字符串,以便您可以使用它们

select 
regexp_substr('123:20:20' ,'(.*?)(:|$)', 1, 1, NULL, 1 ) HOUR,
regexp_substr('123:20:20' ,'(.*?)(:|$)', 1, 2, NULL, 1 ) MIN,
regexp_substr('123:20:20' ,'(.*?)(:|$)', 1, 3, NULL, 1 ) SECOND
from dual;

推荐阅读