日期参数表达式 - SSRS

Date parameter expression(s) - SSRS

我正在努力弄清楚如何让 SSRS 报告的日期参数默认为:

日期 1:上个月的最后一天 - 上一年。

例如今天 = 22/06/2021 - 我需要 31/05/2020 才能出现

日期 2:当前月份的最后一天 - 上一年。

例如,今天 = 22/06/2021 - 我需要 30/06/2020 才能出现。

感谢收到的任何帮助。谢谢。

拳头表达式使用

=
DateAdd(
        DateInterval.Day,
        day(today()) * -1,
        DateAdd(DateInterval.Year, -1, today())
       )

第二次使用

=
DateAdd(
        DateInterval.Day,
        Day(today()) * -1,
        DateAdd(
                DateInterval.Month, 
                1,
                DateAdd(DateInterval.Year, -1, today())
                )
        )

在第一个表达式中,从中间开始向外工作。

使用 DateAdd 从今天的日期减去 1 年,然后从中减去当前日期 (22)。

第二个是.. 从今天的日期减去 1 年,然后加上一个月,最后减去当前日期。

我总是发现首先将日期更改为当月的第一天并从那里开始更容易。我以前使用 DATEADD,但现在开始使用 VB.NET 方式 - 对于像这样的复杂计算,它实际上更容易。

当月第一天:

=DATEADD("d", 1 - DAY(TODAY))

=TODAY.AddDays(1 - TODAY.Day)

然后减去一年:

=DATEADD("y", -1, DATEADD("d", 1 - DAY(TODAY)))

=TODAY.AddDays(1 - TODAY.Day).AddYears(-1)

然后从中减去一天得到上个月的月末:

=DATEADD("d", -1, DATEADD("y", -1, DATEADD("d", 1 - DAY(TODAY))))

=TODAY.AddDays(1 - TODAY.Day).AddYears(-1).AddDays(-1)

上一年当月的最后一天减去日前要加月:

=DATEADD("d", -1, DATEADD("M", 1, DATEADD("y", -1, DATEADD("d", 1 - DAY(TODAY)))))

=TODAY.AddDays(1 - TODAY.Day).AddYears(-1).AddMonths(1).AddDays(-1)

VB.NET 更容易阅读,并且可以边读边计算,而阅读嵌套的 DATEADD 则比较困难。