SSRS 将总分钟数格式化为总分钟数 HH:MM:SS

SSRS format total minutes into total HH:MM:SS

当前报表表达式呈现Days:Hours:Minutes:Seconds

中的数据
=cstr(floor((sum(Fields!phoneInOutbound.Value) / 86400))) & " days " & 
cstr(floor(((sum(Fields!phoneInOutbound.Value) Mod 86400) / 3600))) & ":" & 
cstr(floor((((sum(Fields!phoneInOutbound.Value) Mod 86400) Mod 3600) / 60))) & ":" & 
cstr(floor(((sum(Fields!phoneInOutbound.Value) Mod 86400) Mod 3600) Mod 60))

我正在尝试让它显示总数 Hours:Minutes:Seconds。

到目前为止,我只能使用以下表达式获得 minutes:seconds;

=cstr(floor((sum(Fields!phoneInOutbound.Value) / 60))) & " : " & 
cstr(floor(((sum(Fields!phoneInOutbound.Value) Mod 60))))

知道如何重新配置​​以便获得总时数吗:minutes:seconds?

如果我是你,我会在 sql 端处理它,只使用 ssrs 作为保存数据的地方。您可以根据需要使它变得简单或复杂。当我的意思是复杂时,我的意思是您从提交的会议记录中获取数据,然后向其中添加 "min" + 秒值 + "sec"。通过将整个事物包装在另一个命名查询中并创建一个计算字段。个人不太喜欢利用 SSRS 进行计算,因为您正在使用报表服务器的内存来执行此操作(应该用于报告而不是处理计算),但是如果这种方法对您来说很容易,那么您将拥有更多功能。下面是在 SQL 端处理此问题的示例代码。

create table #temp_time_test (
    phoneInOutbound_IN datetime
    ,phoneInOutbound_OUT datetime
    )

    insert into #temp_time_test values 
    ('11/06/2018 12:24:13.790','11/06/2018 12:34:13.790')



    select DATEDIFF(MINUTE,phoneInOutbound_IN,phoneInOutbound_OUT) from #temp_time_test

好的,所以您基本上需要添加第一个语句(最初是几天)加上第二个语句(最初是几个小时)。您可以更改第一个语句以获取天数而不是天数 * 24 以将天数返回到小时数 THAN + 第二个语句。可能有一种更简单的方法,不确定您的数据集是什么样的,甚至不确定您从哪个数据库读取。只是想让您朝着正确的方向思考。