如何在PostgreSQL中使用SQL获取分钟数

时间:2016-10-21 07:54:24

标签: sql postgresql

我在函数中使用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

2 个答案:

答案 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);