我想导入一个 Excel 文件,其中时间格式为“00:00”(分:秒)。数据库中对应的字段指定为整数。
我可以使用哪个函数来输入值并将其转换为相应的整数表示形式?例如:“02:39”应返回“159”。
我尝试用谷歌搜索并查看各种来源,例如: https://www.postgresql.org/docs/current/functions-datetime.html。 我找不到我需要的功能
没有用于您正在寻找的转换的本机函数。因此,解决方案是用户定义的函数。该函数需要获取格式化的字符串,将其解析为不同的部分,最后计算并返回秒数。幸运的是,这是一项简单的任务:
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 函数返回。 (参见演示)