sql - 将格式为 35:23:12 的 VARCHAR 转换为我可以求和的数据类型
问题描述
我有以下格式的 varchar 数据:
示例 1 - 00:00:06
示例 1 - 372:25:27
它代表小时:分钟:秒
我需要能够将其转换为我可以总结的数据类型,我只需要小时和分钟。无论如何要转换这些数据,以便我可以通过查询对其进行求和?
注意我不能改变在别人的数据库上做一些工作的表。
解决方案
使用正则表达式将拆分您的字符串,以便您可以使用它们
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;
推荐阅读
- angular - Angular forkJoin 订阅未触发
- docker - 使用 shell 脚本将文件从容器复制到本地
- bash - 使用 sed/grep 从 markdown 文件中提取图像 URI,其中包含单行中的重复项
- python - 使用 pandas 比较单元迭代
- swift - 如何从 SwiftUI 中的形状创建 NavigationLink 或 Button,仅通过点击形状而不是其框架触发
- python - 是否有实现新的 MySQL v8+ TRUE 异步功能的 Python MySQL 库?
- python - 如何在熊猫中将字符串转换为弧度以计算两点之间的距离
- assembly - 程序集 8086 - x86 中的减法
- javascript - 对象有数据,但打开时它是空的
- regex - 如何在 Goo 中使用正则表达式提取子字符串