Search code examples
reporting-servicesssrs-2012

Getting Error while using Division in SSRS


I'm getting error when I use this formula in SSRS 2017:

Operator '/' is not defined for types 'integer' and 'System.TimeSpan'

Operator '*' is not defined for types 'System.TimeSpan' and 'System.TimeSpan'

=IIF(
     100 / (DateAdd("d", -(Day(Today)), Today) - 
            DateSerial(Year(DateAdd("m", -1, Now())),  1, 1)
            )
     * ((Today - DateSerial(Year(DateAdd("m", -1, Now())),  1, 1)) / 100) > 1, 
     1, 
     100 / (DateAdd("d",-(Day(Today)), Today) - 
            DateSerial(Year(DateAdd("m", -1, Now())),  1, 1)
            )
     * ((Today - DateSerial(Year(DateAdd("m", -1, Now())),  1, 1)) / 100)
     )

Solution

  • Use DateDiff() instead of -:

    =IIF(
     100 / DateDiff("d", DateAdd("d", -Day(Today), Today),
                    DateSerial(Year(DateAdd("m", -1, Now())),  1, 1)
                    )
     * (DateDiff("d", Today, DateSerial(Year(DateAdd("m", -1, Now())),  1, 1)) / 100) > 1, 
     1, 
     100 / DateDiff("d", DateAdd("d",-(Day(Today)), Today), 
                    DateSerial(Year(DateAdd("m", -1, Now())),  1, 1)
                    )
     * DateDiff("d", Today, DateSerial(Year(DateAdd("m", -1, Now())),  1, 1)) / 100
     )