DateAdd的SSRS表达式返回值和空白

问题描述

enter image description here

大家好,我在SSRS中有一个表达式,可以根据“上次拟合测试”来计算截止日期。如果上一次验配测试有日期,则该数据是正确的。但是,如果“上一次拟合测试”为空或空白,则会给出错误“ #########”(假定返回空或空白)。如何修复该表达式?

=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总是评估真假条件,因此,如果您在LastFitTest中没有任何值,那么即使永远不会使用,假面也无法评估。

我们在这里所做的所有事情都是使在DateDiff函数中处理的日期始终返回有效日期。 1900年1月1日一无是处,您可以在其中输入任何日期,因为它将永远不会用在最终结果中。

唯一的其他更改是删除了= TrueIsNothing返回True / False,因此您不必明确地说= True。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...