我把这个varchar格式作为时间累加,我想把它转换成一个整数来求和,得到一个组的总时间。第一部分可能是1,2,3,4甚至5位数,代表小时的累积,然后用一个冒号隔开。然后是第二部分,它是分钟的累积和最后的秒的累积(每个2位数)。如果可能,如何在一个查询中将其转换为整数。
最佳答案
-- sample data for discussion
declare @T table (exceltime varchar(10));
insert @T select
'123:44:50' union all select
'3:44:50' union all select
'0:00:01' union all select
'1123:11:50';
-- This query breaks up your time into components
select
stuff(exceltime,len(exceltime)-5,100,'') hr,
left(right(exceltime,5),2) min,
right(exceltime,2) second
from @T
-- and this one just adds them up
select
60*60*stuff(exceltime,len(exceltime)-5,100,'') +
60*left(right(exceltime,5),2) +
right(exceltime,2) totalsecond
from @T
totalsecond -- result
===============
445490
13490
1
4043510