SSRS 2008在IIF声明中的时间转换

时间:2013-10-13 11:55:16

标签: reporting-services

我正在尝试在IIF语句中转换时间。

我有一个值为2013-10-15 01:00:00.0000000的字段。我正在尝试将其转换为“01:00”,然后根据转换生成2个结果中的1个。

我已尝试使用case when语句,这似乎不起作用。

我也尝试过使用like "*01:00*",这也行不通。目前,这正是我试图做的,但似乎我没有以正确的方式解决这个问题:

=iif(Fields!TEST1.VALUE LIKE ("*01:00:00.0000000*"), "TRUE", "NOT TRUE")

1 个答案:

答案 0 :(得分:0)

严格查看您要执行的操作,使用SSRS表达式,您需要使用InStr检查更大字符串中的子字符串:

=IIf(InStr(Fields!TEST1.Value, "01:00:") > 0, True, False)

这适用于您的示例行和另一个测试用例:

enter image description here

但是,我们对您的数据知之甚少 - 基础数据实际上是字符串还是日期时间?

如果您的数据是日期时间,则可以使用其他方法:

=IIf(Hour(Fields!TEST1.Value) = 1 and Minute(Fields!TEST1.Value) = 0
    , True
    , False)

甚至:

=IIf(Fields!TEST1.Value.ToString("HH:mm") = "01:00"
    , True
    , False)

如果可能的话,我会尽可能考虑日期时间函数,因为它们最接近你想要达到的目的。