如何提取格式为“MI:SS”的时间的整数值

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

我想导入一个 Excel 文件,其中时间格式为“00:00”(分:秒)。数据库中对应的字段指定为整数。

我可以使用哪个函数来输入值并将其转换为相应的整数表示形式?例如:“02:39”应返回“159”。

我尝试用谷歌搜索并查看各种来源,例如: https://www.postgresql.org/docs/current/functions-datetime.html。 我找不到我需要的功能

postgresql type-conversion data-conversion
1个回答
0
投票

没有用于您正在寻找的转换的本机函数。因此,解决方案是用户定义的函数。该函数需要获取格式化的字符串,将其解析为不同的部分,最后计算并返回秒数。幸运的是,这是一项简单的任务:

create or replace function convert_miss_to_integer( miss_in text)
  returns integer
 language sql
as $$
    with time_miss(mi,ss) as 
         (select substring(miss_in,1,position(':' in miss_in)-1)::integer
               , substring(miss_in,position(':' in miss_in)+1)::integer
         )
    select 60*mi+ss
      from time_miss;
$$;

time_miss
cte 使用子字符串和位置
字符串函数
将输入字符串解析为所需的小步曲 (
mm
) 和秒 (ss);然后主选择计算总秒数。结果作为 SQL 函数返回。 (参见演示

© www.soinside.com 2019 - 2024. All rights reserved.