日期:2014-05-18 浏览次数:20612 次
--> 测试数据:[test]
if object_id('[test]') is not null
drop table [test]
create table [test](
[ID] int,
[time] time
)
insert [test]
select 1,'00:00:11' union all
select 2,'00:00:13' union all
select 1,'00:00:21' union all
select 3,'00:01:01' union all
select 1,'00:00:51' union all
select 2,'00:00:38'
select
id,
convert(varchar(8),dateadd(second,SUM(DATEDIFF(second,'00:00:00',[time])),'00:00:00'),24) as [time]
from
test
group by
id
/*
id time
-----------------------
1 00:01:23
2 00:00:51
3 00:01:01
*/
------解决方案--------------------
declare @user table
(ID int not null,
Time varchar(10) not null)
insert into @user
select 1,'00:00:11' union all
select 2,'00:00:13' union all
select 1,'00:00:21' union all
select 3,'00:01:01' union all
select 1,'00:00:51' union all
select 2,'00:00:38'
;with t as
(
select *,datediff(s,'1900-01-01 00:00:00.00',convert(datetime,time)) as S from @user
)
select id,right(convert(varchar(19),dateadd(s,sum(s),'1900-01-01 00:00:00.00'),120),8) as Time from T
group by ID
------------------
(6 行受影响)
id Time
----------- ----------------
1 00:01:23
2 00:00:51
3 00:01:01
(3 行受影响)