SQLテーブルに「total_hours_worked」という名前の列があり、これは「datetime」データ型であり、「sqlサーバーでの合計作業時間」の合計を調べたいと考えています。
これを行う方法?私はグーグルで検索しましたが、実用的な解決策はありませんでした。
SQLテーブルに「total_hours_worked」という名前の列があり、これは「datetime」データ型であり、「sqlサーバーでの合計作業時間」の合計を調べたいと考えています。
これを行う方法?私はグーグルで検索しましたが、実用的な解決策はありませんでした。
私があなたのデータを正しく理解していれば、このようなものです。
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
。より効率的で扱いやすくなります。
これを試してみてください。ここでは秒も考慮しました。
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