我有以下表达式来检查参数日期值,并在必要时从日期替换:
=IIF(Parameters!FromDate.Value is nothing,
IIF(Parameters!ToDate.Value is nothing,
DateAdd("d",-30,Now()),
DateAdd("d",-30,Parameters!ToDate.Value)),
Parameters!FromDate.Value)
仅当todate
为空时,才会出现错误:
添加或减去的值会导致无法表示的日期时间。
有人遇到过这样的问题吗?
答案 0 :(得分:1)
问题是IIF
是一个函数,而不是一个语言构造,所以它在将两个参数传递给函数之前对它们进行计算。这意味着即使DateAdd("d", -30, Parameters!ToDate.Value)
为空,也会对Parameters!ToDate.Value
进行评估,从而为您提供此错误。
请改为尝试:
=IIF(Parameters!FromDate.Value is Nothing,
DateAdd(DateInterval.Day, -30, IIF(Parameters!ToDate.Value is nothing, Today, Parameters!ToDate.Value)),
Parameters!FromDate.Value)