更新:
24 時間を超える場合でも、SQL Server でタイムスパンを正しく計算する :
-- Setup test data declare @minDate datetime = '2012-12-12 20:16:47.160' declare @maxDate datetime = '2012-12-13 15:10:12.050' -- Get timespan in hh:mi:ss select cast( (cast(cast(@maxDate as float) - cast(@minDate as float) as int) * 24) /* hours over 24 */ + datepart(hh, @maxDate - @minDate) /* hours */ as varchar(10)) + ':' + right('0' + cast(datepart(mi, @maxDate - @minDate) as varchar(2)), 2) /* minutes */ + ':' + right('0' + cast(datepart(ss, @maxDate - @minDate) as varchar(2)), 2) /* seconds */ -- Returns 18:53:24
プレ>不正確さを示すエッジケースは特に歓迎します!