我在报告服务字段中的列值为2.23:48:50
(day.hour:分钟:秒)。
我尝试使用以下代码进行转换:
(Fields!hrs_apprvd.Value / 60)+“:”+(Fields!hrs_apprvd.Value - ((Fields!hrs_apprvd.Value / 60)* 60)+“:00
和
格式(DateAdd(“s”,(TimeSpan.FromTicks(Sum(Fields!hrs_apprvd.Value))),“00:00:00”),“HH:mm:ss”)
但它不起作用。
我需要将其显示为71:48:50
。
如何在Reporting Services中执行此操作?
答案 0 :(得分:3)
不幸的是,您的要求非常困难:
基于此,以下表达式将起作用:
=CInt(Left(Fields!hrs_apprvd.Value, InStr(Fields!hrs_apprvd.Value, ".") - 1))
* 24
+ CInt(Mid(Fields!hrs_apprvd.Value
, InStr(Fields!hrs_apprvd.Value, ".") + 1
, InStr(Fields!hrs_apprvd.Value, ":") - InStr(Fields!hrs_apprvd.Value, ".") - 1))
& ":" & Right(Fields!hrs_apprvd.Value
, Len(Fields!hrs_apprvd.Value) - InStr(Fields!hrs_apprvd.Value, ":"))
这适用于您的一个示例,但您可能需要稍微调整较大的数据集。
您还可以通过为较小的表达式(如Left(Fields!hrs_apprvd.Value, InStr(Fields!hrs_apprvd.Value, ".") - 1)
)添加一组计算字段来简化表达式,然后在表格表达式中引用计算字段。
你可以看到表达式变得非常复杂 - 应用SSRS的转换也值得研究。