我在函数中使用SQL
select a[2] as hour, a[3] minutes from ( select regexp_split_to_array('for 7h 18m', ' ') ) as dt(a);
我的结果为
hour minutes
7h 18m
我想要
minutes
438
答案 0 :(得分:4)
文档中有example使用提取和纪元。
SELECT EXTRACT(EPOCH FROM '2h 18m'::INTERVAL)/60;
答案 1 :(得分:2)
此处的一个选项是从小时字符串中删除h
,乘以60得到分钟,然后将此数量添加到分钟字段,同时删除m
。试试这个问题:
select regexp_replace(a[2], '[h\s]', '')::integer * 60 +
regexp_replace(a[3], '[m\s]', '')::integer as minutes
from
(
select regexp_split_to_array('for 7h 18m', ' ')
) as dt(a);