将时间转换为持续时间

问题描述 投票:1回答:1

我在一个表中有原始数据,我在其中以文本字符串“ 4:30 hrs”的形式获得持续时间。解析并转换为分钟的好方法是什么?例如,“ 4:30 hrs”。将解析为整数270。

sql postgresql time intervals
1个回答
2
投票

Postgres具有足够的灵活性,仅通过强制转换即可将字符串'4:30 hrs'转换为interval

然后剩下的就是将间隔设为分钟,您可以通过从中提取epoch,然后将结果除以60来完成。

所以我就去:

extract(epoch from '4:30 hrs'::interval) / 60

Demo on DB Fiddle

select mycol, extract(epoch from mycol::interval) / 60 res
from (values ('04:30 hrs'::text), ('29:40 hrs'::text)) as t(mycol)
mycol |资源:-------- | :-04:30时| 27029:40小时| 1780年
© www.soinside.com 2019 - 2024. All rights reserved.