SSRS:24:00 的 Hour()

SSRS: Hour() for 24:00

我正在使用 Hour(Fields!tempo.Value) 从字段(速度)中获取小时数。当我第一次得到“24:00”并且报告显示“#error”时,问题就来了。

'Hour'函数中的描述说:

Returns an Integer value from 0 through 23 representing the hour of the day

所以,我将表达式更改为

=IIf(Fields!tempo.Value = "24:00", 0, Hour(Fields!tempo.Value))

但是我得到了#error。然后我试了:

=IIf(Fields!tempo.Value = "24:00", 0, 1)

正确地,我得到 24:00 值的“0”和其余值的“1”。

  1. 我不明白为什么 Hour()IIf() 下无法工作。
  2. 对于这种情况可能存在一些更好的解决方法,但我不知道。

提前致谢

编辑:

想法是获取每天 2 小时之间开始的所有事件(对于从早上、下午和晚上开始的筛选事件):

=IIf(Hour(Fields!tempo.Value) >= 22 Or Hour(Fields!tempo.Value) <= 6, SHOWTHIS, Nothing)

如果你不需要对小时执行操作,你可以使用字符串来获取小时,如果你的数据集returns是一个字符串,这是最简单的解决方案(IMO)。

尝试使用这个表达式:

=IIF(LEFT(Fields!tempo.Value,2)="24","0",REPLACE(LEFT(Fields!tempo.Value,2),":",""))

如果您仍想使用 HOUR 函数获取小时数,则必须在 IIFHOUR 函数中验证您的字段两次:

=IIF(Fields!tempo.Value="24:00",
0,
HOUR(IIF(Fields!tempo.Value="24:00","0:00",Fields!tempo.Value))
)

如果有帮助请告诉我。