增加或减去的值会导致无法表示的日期时间

时间:2014-09-08 02:12:14

标签: reporting-services ssrs-2008 ssrs-2008-r2 ssrs-grouping

我有以下表达式来检查参数日期值,并在必要时从日期替换:

=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为空时,才会出现错误:

  

添加或减去的值会导致无法表示的日期时间。

有人遇到过这样的问题吗?

1 个答案:

答案 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)