是否可以在IIF声明中使用DateDiff?

时间:2016-11-24 15:31:54

标签: reporting-services ssrs-2008 reportbuilder3.0

我一直在寻找帮助,但找不到我需要的东西。 我试图找到两个日期字段之间的总天数,但是初始日期字段可以来自两个不同的字段,例如开始日期或修改的开始日期。结束日期将始终是相同的字段。

大部分时间都没有修改的开始日期,但我需要一种方法来满足修改开始日期的情况。 我尝试了以下

=IIF(Fields!AmendedStartDate.Value is nothing, DateDiff("d",Fields!StartDate.Value,Fields!EndDate.Value, DateDiff("d",Fields!AmendedStartDate.Value, Fields!EndDate.Value)))

运行此操作时出错。

我是Report Builder / SSRS的新手,所以我不确定我所要求的是否可能。

感谢您花时间去看。

1 个答案:

答案 0 :(得分:1)

您不能Fields!FieldName.Value is nothing,而是需要IsNothing(Fields!FieldName.Value)

=IIf(IsNothing(Fields!AmendedStartDate.Value),DateDiff("d",Fields!StartDate.Value,Fields!EndDate.Value),DateDiff("d",Fields!AmendedStartDate.Value,Fields!EndDate.Value))

或者,您可以使用类似的表达式创建计算字段(称为StartDateToUse):

=IIf(IsNothing(Fields!AmendedStartDate.Value),Fields!StartDate.Value,Fields!AmendedStartDate.Value)

然后在主表达式中引用此字段以获得所需的结果:

=DateDiff("d",Fields!StartDateToUse.Value,Fields!EndDate.Value)