DateAdd 到 return 值和空白的 SSRS 表达式
SSRS Expression for DateAdd to return value and blank
大家好,我在 SSRS 中有一个表达式可以根据上次拟合测试计算截止日期。如果上次拟合检验有日期,则数据正确。但是,如果上次拟合测试为 Null 或空白,则会给出错误“########”(它假定 return 为空或空白)。我该如何修复该表达式?
=IIF(IsNothing(Fields!LastFitTest.Value) = True,"",DateAdd(DateInterval.Year,1,Fields!LastFitTest.Value))
试试这个...
=IIF(
IsNothing(Fields!LastFitTest.Value),
"",
DateAdd(DateInterval.Year,1,IIF(IsNothing(Fields!LastFitTest.Value), '1900-01-01', Fields!LastFitTest.Value))
)
问题是 IIF 总是评估 true 和 false 条件,所以当你在 LastFitTest
中没有值时,错误的一面无法评估,即使它永远不会被使用。
我们在这里所做的就是使在 DateDiff 函数中处理的日期始终 return 成为有效日期。 1900 年 1 月 1 日没有任何意义,您可以在其中输入您喜欢的任何日期,因为它永远不会用于最终结果。
唯一的其他更改是删除 = True
。 IsNothing
returns True/False 所以你不必明确地说 =True.
大家好,我在 SSRS 中有一个表达式可以根据上次拟合测试计算截止日期。如果上次拟合检验有日期,则数据正确。但是,如果上次拟合测试为 Null 或空白,则会给出错误“########”(它假定 return 为空或空白)。我该如何修复该表达式?
=IIF(IsNothing(Fields!LastFitTest.Value) = True,"",DateAdd(DateInterval.Year,1,Fields!LastFitTest.Value))
试试这个...
=IIF(
IsNothing(Fields!LastFitTest.Value),
"",
DateAdd(DateInterval.Year,1,IIF(IsNothing(Fields!LastFitTest.Value), '1900-01-01', Fields!LastFitTest.Value))
)
问题是 IIF 总是评估 true 和 false 条件,所以当你在 LastFitTest
中没有值时,错误的一面无法评估,即使它永远不会被使用。
我们在这里所做的就是使在 DateDiff 函数中处理的日期始终 return 成为有效日期。 1900 年 1 月 1 日没有任何意义,您可以在其中输入您喜欢的任何日期,因为它永远不会用于最终结果。
唯一的其他更改是删除 = True
。 IsNothing
returns True/False 所以你不必明确地说 =True.