我有一个包含时间值的列。我想计算这一列的总和,并且我知道它将超过24小时的时间格式。
当我尝试它时,我收到一个错误。我希望总和类似于Excel总和,即 37:30:55
请帮助:
<span id="results">
答案 0 :(得分:1)
DECLARE @Seconds int =
37 * (60 * 60) -- Hour
+ 30 * 60 -- Minute
+ 55 -- Second
-- This is h:mm:ss format
SELECT
CONVERT(varchar(10), @Seconds / (60 * 60)) + ':' -- Max. 10 precision for hour
+ RIGHT('0' + CONVERT(varchar(2), @Seconds % (60 * 60) / 60), 2) + ':'
+ RIGHT('0' + CONVERT(varchar(2), @Seconds % 60), 2)
答案 1 :(得分:0)
这是一个小型标量函数,持续时间以秒为单位,并以您要求的格式返回:
create function fmtSeconds (@s int)
returns varchar(10)
as
begin
declare @h varchar(5), @m varchar(2);
set @h = @s/(60*60);
set @s -= @h * 60*60;
set @m = @s/60;
set @s -= @m * 60;
return @h + ':' + @m + ':' + cast(@s as varchar(2));
end
go
--sample call
declare @seconds int = 55 + 30*60 + 37*60*60;
select dbo.fmtSeconds(@seconds);
go
我同意上述评论中的观点,即如果这是您的选择,请将此作为客户方面的关注。