将nvarchar拆分为在MySQL中提取整数值

时间:2017-03-28 18:06:35

标签: sql sql-server split nvarchar

我有两列:

Samedi

持续时间(nvarchar的(255)) 我想计算每个ID的持续时间总数。 我尝试使用SUBSTRING然后CAST,但它没有给我所需的输出。对此有任何帮助将非常感激。

2 个答案:

答案 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;