我的报告中有一列包含文字值,如:
01:30
00:45
02:15
等等。我如何获得这样的总数?
04:30
花费的总时间。我正在尝试这个表达式 -
= FLOOR(Sum(Cint(Left(Fields!est_pack_time.Value,2)), "DataSet1") ) & ":" & RIGHT("0" & (Sum(Cint(Right(Fields!est_pack_time.Value,2)), "DataSet1") MOD 60), 2)
这给了我一些接近但仍然不对的东西。我总结了整个数据集的总时间。
答案 0 :(得分:2)
你走在正确的轨道上 - 你的表达只是没有将额外的时间从总计时间总计到总时数。
更新的表达式将是这样的:
=Right("0" & Sum(CInt(Left(Fields!est_pack_time.Value,2)), "DataSet1")
+ Floor(Sum(CInt(Right(Fields!est_pack_time.Value,2)), "DataSet1") / 60),2)
& ":" & Sum(CInt(Right(Fields!est_pack_time.Value,2)), "DataSet1") Mod 60
这是从小时开始计算总数,从总分钟中添加溢出,然后将分钟连接到此字符串。它还用前导零填充小时以确保字符串总是5个字符。
快速测试对我有用:
最后,毋庸置疑,如果可能的话,最好不要以文本格式存储持续时间,但当然在您的情况下这可能是不可能的。
答案 1 :(得分:0)
=split(TimeSpan.FromTicks(Sum(Fields!TotalHours.Value)).TotalHours,".").GetValue(0) &":"
& Format(TimeSpan.FromTicks(Sum(Fields!TotalHours.Value)).TotalMinutes mod 60,"00")
答案 2 :(得分:-1)
=replace( left(TimeSpan.FromTicks(Sum(Fields!TotalHours.Value)).TotalHours,3)&":"
& right(TimeSpan.FromTicks(Sum(Fields!TotalHours.Value)).TotalHours,3)*60,".","")