首页 > 解决方案 > 如何让 SSRS 日期正确默认?

问题描述

我多年来一直在使用 SSRS,并且一直使用该功能为上个月的最后一天设置默认日期参数,使用以下内容。 =dateadd("m",0,dateserial(year(Today),month(Today),0)) 但是,这一次我需要在过去 9 个月内执行此操作,因此现在是 2021 年 3 月,我希望默认日期为 2020 年 6 月 30 日,所以我使用的是: =dateadd("m",-8,dateserial(year(Today),month(Today),0)) SSRS 返回正确的年份和月份,但是我得到的日期是 6 月 28 日,我认为这是因为它先是在 2 月,然后再回到 8 个月?如果我将 0 或 8 更改为任何数字,我仍然会在日期字段中得到 28?

标签: functiondatereporting-services

解决方案


我通常从月份中减去天数得到月份的第一天,减去月份数加 1,然后减去一天得到上个月的最后一天。有点乏味,但它避免了各种月末问题。

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

或者你可以用 VB.NET 方法做同样的事情:

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

推荐阅读