将持续时间字符串转换为秒整数
Convert duration string into seconds integer
我想将表示持续时间的字符串转换为整数形式的持续时间(以秒为单位)。
所有字符串的格式如下:
hh:mm:ss
我正在处理子字符串,我将其转换为整数,然后分别乘以 3600、60 或 1,最后对所有内容求和。
就像这样:
SELECT
cast(substr(time_string, 1, 2) as smallint) * 3600 + cast(substr(time_string, 4, 2) as smallint) * 60 + cast(substr(time_string, 7, 2) as smallint) as seconds
from table_name
由于我必须对多个字段执行此操作,因此我对实现此结果的更好方法很感兴趣。不过,我对更好的解决方案的搜索到目前为止没有成功。
如有任何意见或帮助,我将不胜感激!
尝试使用 date_parse
, cast to time and use date_diff
和所需的单位:
select date_diff(
'second',
time '00:00:00', -- zero time
cast(date_parse('12:10:56', '%T') as time)
) seconds
输出:
seconds
43856
我想将表示持续时间的字符串转换为整数形式的持续时间(以秒为单位)。
所有字符串的格式如下:
hh:mm:ss
我正在处理子字符串,我将其转换为整数,然后分别乘以 3600、60 或 1,最后对所有内容求和。
就像这样:
SELECT
cast(substr(time_string, 1, 2) as smallint) * 3600 + cast(substr(time_string, 4, 2) as smallint) * 60 + cast(substr(time_string, 7, 2) as smallint) as seconds
from table_name
由于我必须对多个字段执行此操作,因此我对实现此结果的更好方法很感兴趣。不过,我对更好的解决方案的搜索到目前为止没有成功。
如有任何意见或帮助,我将不胜感激!
尝试使用 date_parse
, cast to time and use date_diff
和所需的单位:
select date_diff(
'second',
time '00:00:00', -- zero time
cast(date_parse('12:10:56', '%T') as time)
) seconds
输出:
seconds |
---|
43856 |