0

次のような値を含む列(時間データ型)があります

9:25:03 
4:43:21 
2:50:13 
11:25:33

、列内のすべての値の合計を取得するには、どのクエリを記述すればよいですか

4

3 に答える 3

1

これを試して:

;with cte as(
select SUM(DATEPART(hh,tm))*3600+
       SUM(DATEPART(MI,tm))*60+
       SUM(DATEPART(SS,tm)) tme
from time_table)
SELECT cast(datepart(hh,cast(CONVERT(varchar(8),
       DATEADD(ss, tme  , 0), 114) as time))+
       datediff(dd,'1900-01-01',CONVERT(varchar, 
       DATEADD(ss, tme  , 0), 121))*24 as varchar(20))+
       right(CONVERT(varchar(8), DATEADD(ss, tme  , 0), 114),6)
from cte    

結果

28:24:10


SQLFiddleデモ

于 2012-10-08T10:50:56.020 に答える
0

これを試して:

create table tbl123(tm time)

insert into tbl123
values('9:25:03'),('4:43:21'),('2:50:13'),('11:25:33')



;WITH CTE as(select SUM(DATEPART(hh,tm)) as hh,SUM(DATEPART(mi,tm)) as mm,SUM(DATEPART(ss,tm)) as ss from tbl123)

SELECT cast(hh+(mm+(ss/60))/60 as varchar(10))+':'+
       cast((((mm+(ss/60))%60)) as varchar(10))+':'+
       cast(ss%60 as varchar(10)) 
       from CTE

結果:

   28:24:10
于 2012-10-08T09:57:26.903 に答える
0

あなたの時間を秒に変えて、代わりに合計してください。

with YourTable(TimeCol) as
(
  select '9:25:03' union all
  select '4:43:21' union all
  select '2:50:13' union all
  select '11:25:33'
)

select sum(datediff(second, 0, TimeCol)) sumSeconds
from YourTable

結果:

sumSeconds
-----------
102250
于 2012-10-08T09:50:26.520 に答える