如何将mm:ss时间字符串转换为秒整数(postgres / liquibase)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将mm:ss时间字符串转换为秒整数(postgres / liquibase)相关的知识,希望对你有一定的参考价值。

这里是情况:-我有一个处理短视频的Spring Boot应用程序。-在启动时,它使用liquibase并具有一些更改db结构的changelog等。下面有一个posgresql db。每年少于2万条记录。-我以前收集了包含记录持续时间的数据,其格式为字符串MM:SS-视频引擎即将更改为一个以一个代表秒数的数字存储记录持续时间的引擎-我想做更多更改日志来处理此类操作:

创建另一列几秒钟将MM:SS字符串转换为第二个字符串并将其存储在新列中删除旧列并重命名新列

最大的问题是使用内部简单的计算进行转换查询。可能吗

答案
select extract(epoch from time '01:05') as time_sec -- 3900 = 1 * 60 * 60 + 5 * 60

如果您有秒部分:

select extract(epoch from time '01:05:01') as time_sec -- 3901
另一答案
set new_duration = case when duration ~ ':' then 60*(substr(duration,1,position(duration,':'-1)::integer +(substr(duration,position(duration,':'+1)::integer else 60*duration::integer

此外,您需要在计划中添加一个步骤,以验证每一行中的列格式均正确。恕我直言,日期时间值没有存储在文本(字符串)中。是的,有些字符串充满希望和好运,其中包含正确的格式化数据-不要指望它。

以上是关于如何将mm:ss时间字符串转换为秒整数(postgres / liquibase)的主要内容,如果未能解决你的问题,请参考以下文章

仅在 javascript 中将 HH:MM:SS 字符串转换为秒

Redshift:将 HH:MM:SS 格式的字符串字段转换为秒和向后

仅将 HH:MM:SS 格式的时间转换为秒?

ruby 将时间(HH:MM:SS)转换为秒,然后再转回

将 HH:MM:SS (hours:minutes:seconds.split seconds) 转换为秒的简单方法

如何有效地将数字字符串值分配给整数? [复制]