Reporting services DateAdd的SSRS表达式返回值并为空
大家好,我在SSRS中有一个表达式,用于计算上次拟合测试的截止日期。如果上次配合测试有日期,则数据正确。但是,如果最后一次拟合测试为Null或空白,则会给出一个错误“#######”(假设返回空或空白)。我如何修正这个表达式Reporting services DateAdd的SSRS表达式返回值并为空,reporting-services,expression,ssrs-2008,calculated-field,Reporting Services,Expression,Ssrs 2008,Calculated Field,大家好,我在SSRS中有一个表达式,用于计算上次拟合测试的截止日期。如果上次配合测试有日期,则数据正确。但是,如果最后一次拟合测试为Null或空白,则会给出一个错误“#######”(假设返回空或空白)。我如何修正这个表达式 =IIF(IsNothing(Fields!LastFitTest.Value) = True,"",DateAdd(DateInterval.Year,1,Fields!LastFitTest.Value)) 试试这个 =IIF( IsNot
=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
中没有值时,false端无法计算,即使它永远不会被使用
我们在这里所做的就是让DateDiff函数中处理的日期始终返回有效日期。1900年1月1日没有任何意义,你可以把你喜欢的任何日期放在那里,因为它永远不会被用于最终结果
唯一的其他更改是删除=True
IsNothing
返回True/False,因此不必显式地说=True