我想使用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
)
)
答案 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))
)
)