如何获取表数据小时、分钟和秒



我使用以下SQL查询来获取AvgTime,当传递两个日期以秒为单位fnDatetoSeconds其返回时差。 在上面的查询中,以分钟为单位返回输出。

我需要把它当作HH.MM.SS. 我该怎么做

SELECT
ISNULL(CAST(AVG(CASE WHEN (l.Status = 5 OR l.Status = 6) THEN dbo.fnDatetoSeconds(l.AssistedTime, l.AddedTime, NULL)*1.0 ELSE NULL END)/60.00 AS DECIMAL(18,6)), 0) AS AvgTime
ISNULL(CAST(AVG(CASE WHEN (l.Status = 2) THEN dbo.fnDatetoSeconds(l.CompletedTime, l.AddedTime, NULL)*1.0 ELSE NULL END)/60.00 AS DECIMAL(18,6)), 0) AS AvgTimeNew
FROM @LobbyRecords l;

这解决了最初的问题。

如果你有两个时间,你想要平均时间,我建议:

select convert(time,
               dateadd(second,
                       avg( datediff(second, l.AddedTime, l.AssistedTime)),
                       0
                      )
              )
from @LobbyRecords l
where l.status in (5, 6);

我将case条件移至where子句,只是为了简化逻辑以专注于关键思想 - 将平均秒数添加到0

最新更新