是否可以在 IIF 语句中使用 DateDiff?
Is it possible to use DateDiff in an IIF statement?
我已经搜索过寻求帮助,但找不到我需要的确切内容。
我试图找到两个日期字段之间的总天数,但是起始日期字段可能来自两个不同的字段,例如开始日期或修改后的开始日期。结束日期将始终是同一字段。
大多数情况下不会有修改的开始日期,但我需要一种方法来满足开始日期已被修改的情况。
我尝试了以下
=IIF(Fields!AmendedStartDate.Value is nothing, DateDiff("d",Fields!StartDate.Value,Fields!EndDate.Value, DateDiff("d",Fields!AmendedStartDate.Value, Fields!EndDate.Value)))
我得到一个错误运行一个运行这个。
我对报告 Builder/SSRS 还很陌生,所以我不确定我的要求是否可行。
感谢您抽空查看。
你不能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)
我已经搜索过寻求帮助,但找不到我需要的确切内容。 我试图找到两个日期字段之间的总天数,但是起始日期字段可能来自两个不同的字段,例如开始日期或修改后的开始日期。结束日期将始终是同一字段。
大多数情况下不会有修改的开始日期,但我需要一种方法来满足开始日期已被修改的情况。 我尝试了以下
=IIF(Fields!AmendedStartDate.Value is nothing, DateDiff("d",Fields!StartDate.Value,Fields!EndDate.Value, DateDiff("d",Fields!AmendedStartDate.Value, Fields!EndDate.Value)))
我得到一个错误运行一个运行这个。
我对报告 Builder/SSRS 还很陌生,所以我不确定我的要求是否可行。
感谢您抽空查看。
你不能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)