sql 05中datetime列的总和

时间:2012-08-04 04:52:35

标签: sql-server database datetime datetime-format

我的sql表中有一个名为“total_hours_worked”的列,其中包含“datetime”数据类型 我想找出“在sql server中工作的总小时数”的总和。

怎么做? 我用谷歌搜索,但没有得到实际的解决方案。

2 个答案:

答案 0 :(得分:1)

如果我正确理解您的数据,那就是这样。

declare @T table
(
  total_hours_worked datetime
)

insert into @T values ('05:30:00')
insert into @T values ('10:00:00')
insert into @T values ('15:00:00')

select sum(datediff(minute, 0, total_hours_worked)) / 60.0 as hours_worked
from @T

结果:

hours_worked
---------------------------------------
30.500000

如果您只需要存储小时数,则应考虑整数数据类型而不是datetime。它将更有效,更容易处理。

答案 1 :(得分:1)

试试这个。我也考虑过秒。

declare @T table
(
  total_hours_worked datetime
)

insert into @T values ('05:30:00')
insert into @T values ('10:00:00')
insert into @T values ('15:00:00')
insert into @T values ('05:25:45')

select SUM((DATEPART(hh,total_hours_worked)*60)+DATEPART(mi,total_hours_worked)+(DATEPART(ss,total_hours_worked)/(60.0)))/60.0  as TotalHours from @T