You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SSRS报表中计算HH:MM格式时间的平均值

解决SSRS中HH:MM格式时间平均值的展示问题

嘿,我来帮你搞定这个需求!你当前的SQL逻辑是对的——把时间转成秒数计算平均值再转回时间,这是计算时间平均值的正确方式,现在只需要调整最终的展示格式,让它只显示小时和分钟就行,给你两种方案选:

方案1:在SQL查询中直接输出HH:MM格式

你可以修改查询语句,用FORMAT函数把计算后的时间直接格式化为HH:mm,这样返回的结果就是你想要的小时分钟格式,不需要在SSRS里额外处理:

SELECT 
    O.ORDERNUM,
    FORMAT(
        CAST(DATEADD(s, AVG(CAST(DATEDIFF(s, '00:00', CAST(DROPTIME AS time(0))) AS INT)), '00:00') AS time(0)),
        'HH:mm'
    ) AS ATIME
FROM ORDE_ O 
WHERE O.CLIENTNUM='HLEX1'
GROUP BY O.ORDERNUM -- 这里要注意:因为用了AVG聚合函数,必须按ORDERNUM分组,不然会报错哦

如果你的SQL Server版本不支持FORMAT函数(比如2012之前的版本),可以用CONVERT配合风格码,或者拼接小时和分钟:

SELECT 
    O.ORDERNUM,
    CONVERT(varchar(5), 
        CAST(DATEADD(s, AVG(CAST(DATEDIFF(s, '00:00', CAST(DROPTIME AS time(0))) AS INT)), '00:00') AS time(0)),
        108
    ) AS ATIME
FROM ORDE_ O 
WHERE O.CLIENTNUM='HLEX1'
GROUP BY O.ORDERNUM

方案2:在SSRS报表中设置格式(不修改SQL)

如果你不想改动SQL,也可以直接在SSRS里调整文本框的显示格式:

  • 找到展示ATIME字段的文本框,右键点击它,选择「文本框属性」
  • 切换到「数字」选项卡
  • 在「类别」列表里选择「时间」,然后在右侧的格式里选「HH:mm」;或者直接在「自定义」输入框里手动输入HH:mm
  • 点击确定后,报表就会自动把时间值显示为小时和分钟的格式,自动隐藏秒数

两种方案都能达到你想要的效果,选哪个看你的习惯就好~

内容的提问来源于stack exchange,提问作者A.Goutam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:41:39