Reporting services 如何将SSRS表达式设置为返回上个月?

Reporting services 如何将SSRS表达式设置为返回上个月?,reporting-services,ssrs-2012,Reporting Services,Ssrs 2012,我想使用SSRS表达式将参数的默认值设置为一年中的上一个月 我试过: =CDate( DateSerial( IIf(DatePart("m", Today())=12, DatePart("yyyy",Today())-1, DatePart("yyyy",Today())), IIf(DatePart("m", Today())=12, 1, DatePart("m",Today())-1), 1 ) ) 我认为你把这件事复杂

我想使用SSRS表达式将参数的默认值设置为一年中的上一个月

我试过:

=CDate(
    DateSerial(
        IIf(DatePart("m", Today())=12, DatePart("yyyy",Today())-1, DatePart("yyyy",Today())),
        IIf(DatePart("m", Today())=12, 1, DatePart("m",Today())-1),
        1
    )
)

我认为你把这件事复杂化了,你不需要检查自己的年度变化——让内置函数为你做这件事

可能会有更好的解决方案,但这对我来说一直很有效

如果您只想要上个月的第一天,那么:

=DateSerial(
    Year(
        DateAdd("m", -1, Today())
    ),
    Month(
        DateAdd("m", -1, Today())
    ),
    1
)
出于我的目的,我通常还需要上个月的最后一天,为此,我使用以下内容:

=DateSerial(
    Year(
        DateAdd("m", -1, Today())
    ),
    Month(
        DateAdd("m", -1, Today())
    ),
    Day(
        DateAdd("d", -1, DateSerial(Year(Today()), Month(Today()), 1))
    )
)