如何将SQL中AVG聚合后的整数时长转换为时间格式?
解决方案
直接将AVG(Length)的结果传入你已有的dbo.convertIntToTime函数即可,注意如果AVG返回的是带小数的数值类型,需要先转换为整数类型(因为你的函数接收整数参数):
SELECT EmployeeName, dbo.convertIntToTime(CAST(AVG(Length) AS INT)) AS AverageCallTime FROM Callers GROUP BY EmployeeName
如果需要更精确的四舍五入处理,可以用ROUND函数先对平均值取整:
SELECT EmployeeName, dbo.convertIntToTime(CAST(ROUND(AVG(Length), 0) AS INT)) AS AverageCallTime FROM Callers GROUP BY EmployeeName
原理说明:AVG(Length)默认返回数值类型(可能包含小数),而dbo.convertIntToTime需要整数参数,通过CAST将平均值转换为整数后,即可复用你已有的时间转换逻辑得到常规时间格式。
内容的提问来源于stack exchange,提问作者Emily
相关产品推荐
相关产品推荐

