我的 sql 表中有一个名为“total_hours_worked”的列,它是“datetime”数据类型,我想找出“sql server 中工作的总小时数”的总数。
这个怎么做?我用谷歌搜索但没有得到实际的解决方案。
我的 sql 表中有一个名为“total_hours_worked”的列,它是“datetime”数据类型,我想找出“sql server 中工作的总小时数”的总数。
这个怎么做?我用谷歌搜索但没有得到实际的解决方案。
试试这个。这里我也考虑过秒。
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
如果我正确理解您的数据,就会出现这样的情况。
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
. 它将更有效,更容易处理。