SSRS 时间格式为 00:00:01
SSRS TimeFormat to 00:00:01
我一直在努力解决 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
请指教。提前致谢。
您可以通过文本字段的表达式设置时间格式。单击文本框并按 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",)
你必须把你的条件放在我提到时间的部分 ('more than one year etc.')。
如果您仍然遇到任何问题,请告诉我。
我无法让它工作。所以在网上搜索了几天后,我发现了一个将秒数转换为 hh:mm:ss 的函数 here on Whosebug。因为有 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
在文本框中选中 < 1 以不显示任何内容,否则 运行 自定义函数。
=IIF(Sum(Fields!DownTime.Value)/Fields!EventCount.Value < 1,"",Code.ConvertSecondsToHourMinSec(Sum(Fields!DownTime.Value)/Fields!EventCount.Value))
我一直在努力解决 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
请指教。提前致谢。
您可以通过文本字段的表达式设置时间格式。单击文本框并按 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",)
你必须把你的条件放在我提到时间的部分 ('more than one year etc.')。 如果您仍然遇到任何问题,请告诉我。
我无法让它工作。所以在网上搜索了几天后,我发现了一个将秒数转换为 hh:mm:ss 的函数 here on Whosebug。因为有 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
在文本框中选中 < 1 以不显示任何内容,否则 运行 自定义函数。
=IIF(Sum(Fields!DownTime.Value)/Fields!EventCount.Value < 1,"",Code.ConvertSecondsToHourMinSec(Sum(Fields!DownTime.Value)/Fields!EventCount.Value))