将时间转换为持续时间
Convert time to duration
我在 table 中有原始数据,其中我以文本字符串“4:30 小时”的形式获得持续时间。解析它并将其转换为分钟的好方法是什么?例如,“4:30 小时”。将解析为整数 270.
Postgres 足够灵活,只需转换字符串 '4:30 hrs'
即可将其转换为 interval
。
然后剩下要做的就是将间隔转换为分钟,您可以从中提取 epoch
,然后将结果除以 60
。
所以我会去:
extract(epoch from '4:30 hrs'::interval) / 60
select mycol, extract(epoch from mycol::interval) / 60 res
from (values ('04:30 hrs'::text), ('29:40 hrs'::text)) as t(mycol)
mycol | res
:-------- | :---
04:30 hrs | 270
29:40 hrs | 1780
我在 table 中有原始数据,其中我以文本字符串“4:30 小时”的形式获得持续时间。解析它并将其转换为分钟的好方法是什么?例如,“4:30 小时”。将解析为整数 270.
Postgres 足够灵活,只需转换字符串 '4:30 hrs'
即可将其转换为 interval
。
然后剩下要做的就是将间隔转换为分钟,您可以从中提取 epoch
,然后将结果除以 60
。
所以我会去:
extract(epoch from '4:30 hrs'::interval) / 60
select mycol, extract(epoch from mycol::interval) / 60 res
from (values ('04:30 hrs'::text), ('29:40 hrs'::text)) as t(mycol)
mycol | res :-------- | :--- 04:30 hrs | 270 29:40 hrs | 1780