我有两列:
Samedi
持续时间(nvarchar的(255)) 我想计算每个ID的持续时间总数。 我尝试使用SUBSTRING然后CAST,但它没有给我所需的输出。对此有任何帮助将非常感激。
答案 0 :(得分:0)
这个答案适用于MySQL,因为问题最初是标记的。
呸。但你可以这样做:
select (substring_index(col, 'h ', 1) * 60 * 60 +
substring_index(substring_index(col, 'm ', 2), ' ', -1) * 60 +
substring_index(substring_index(col, 'sec.',1),' ', -1)
) as duration_secs
from t;
这会提取每个组件,然后使用隐式转换进行计算。
答案 1 :(得分:0)
下面的查询使用str_to_date来转换字符串,time_to_sec函数将时间部分转换为秒。
如果持续时间超过23小时59分59秒,这种方法将会中断。 @Gordon Linoff的方法将处理这种情况。
select id,
duration,
time_to_sec(str_to_date(duration,'%Hh %im %ssec.')) as seconds_elapsed;