我一直在努力解决SSRS中的时间格式问题。到目前为止我所得到的是秒数在00:00:15列出但分钟如15:25而不是00:15:25。我已经玩了一段时间了,但无论如何它都不会显示,无论我把"00:" &
这是我的代码
=IIF(Sum(Fields!ActualTime.Value)/Fields!EventCount.Value < 1,"", IIF((Sum(Fields!ActualTime.Value)/Fields!EventCount.Value)/60 < 1, "00:00:" & (Sum(Fields!ActualTime.Value)/Fields!EventCount.Value), IIF((Sum(Fields!ActualTime.Value)/Fields!EventCount.Value)/3600 >= 1, ((Sum(Fields!ActualTime.Value)/Fields!EventCount.Value) - (Sum(Fields!ActualTime.Value)/Fields!EventCount.Value) mod 3600)/3600 & ":","") & IIF((Sum(Fields!ActualTime.Value)/Fields!EventCount.Value) mod 3600 >= 1, ((Sum(Fields!ActualTime.Value)/Fields!EventCount.Value) mod 3600 - (Sum(Fields!ActualTime.Value)/Fields!EventCount.Value) mod 3600 mod 60)/60 & ":","") & (Sum(Fields!ActualTime.Value)/Fields!EventCount.Value) mod 3600 mod 60))
此外,还列出了1秒,分钟或小时,没有前导0.这样:01:01:01
请指教。提前谢谢。
答案 0 :(得分:0)
您可以通过文本字段的表达式设置时间格式。单击文本框,然后按f4。转到格式并单击下拉列表,然后单击表达式。
在表达式中你可以写这样的东西。
=switch("More than one hour","HH:mm:ss",
"less than one hour and more than a minute","MM:ss",
"Less than one minute","SS",)
&#13;
你必须把你的条件放在我提到过的时间里(超过一年等等)。#39; 让我知道你是否仍然面临任何问题。
答案 1 :(得分:0)
我无法让它发挥作用。所以在网上搜索了几天之后,我找到了一个函数here on stackoverflow,它将秒转换为hh:mm:ss。由于有16个字段需要这个计算,我发现使用这个函数更容易。 无论如何,谢谢你的答案。
Public Function ConvertSecondsToHourMinSec(ByVal intTotalSeconds) As String
Dim hours As String = INT(intTotalSeconds / 3600)
If Len(hours) < 2 Then
hours = RIGHT(("0" & hours), 2)
End If
Dim mins As String = RIGHT("0" & INT((intTotalSeconds Mod 3600) / 60), 2)
Dim secs As String = Right("0" & INT((intTotalSeconds Mod 3600) Mod 60), 2)
ConvertSecondsToHourMinSec = hours & ":" & mins & ":" & secs
End Function
在文本框中检查&lt; 1显示任何内容并以其他方式运行自定义功能。
=IIF(Sum(Fields!DownTime.Value)/Fields!EventCount.Value < 1,"",Code.ConvertSecondsToHourMinSec(Sum(Fields!DownTime.Value)/Fields!EventCount.Value))