如何设置SSRS表达式返回上个月?

时间:2017-12-06 09:52:23

标签: 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
    )
)

1 个答案:

答案 0 :(得分: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))
    )
)