SSRS上个月的第一天

时间:2018-01-05 22:03:01

标签: date reporting-services

我有一份SSRS报告,该报告应显示截至上个月最后一天的日历年初至今的销售额。我无法动态计算开始日期参数。

如果我在2017年12月15日运行报告,则前一个月的最后一天是11月30日,所以我希望看到2017年1月1日至2017年3月30日。如果我在2014年1月15日运行报告,那么上个月的最后一天是12/31,所以我想看2017年1月1日/ 2017年12月31日。

对于开始日期,我使用 Today.AddMonths(1-Today.month).AddDays(1-Today.day).AddYears(1-Today.year),这真的只是根据报告的状态返回当前年度的第一天。除1月份外,任何月份都可以正常使用。

当我使用该公式并在1月份运行报告时,它将返回1/1/2018而非1/1/2017。

我意识到它不起作用的原因是因为我基于"今天"而不是上个月的最后一天,我只是不知道能做我需要的正确公式。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

要获取开始日期,请使用此...

=DateSerial(Year(DateAdd("m", -1, Now())),  1, 1)

这只需要一个临时日期(在这种情况下为2018-01-06),减去2017-12-06的一个月,得到这个日期的年份(2017)然后我们只将月和日都设置为1最终给了我们2017-01-01

如果我们在2018年6月20日运行此操作,我们将按照相同的流程,减去一个月给2018-05-20获取年份(2018年),然后将月份和日期设置为1给我们2018-01-01 < / p>

使用结束日期

=DateAdd("d",-(Day(today)), Today)

这里我们从今天的日期开始减去几天。我们减去的天数是今天的天数,因此对于2018-01-06我们减去6天,这给我们2017-12-31 如果我们在2018年6月20日进行此操作,我们将遵循相同的流程,取2018-06-20并减去20天,这给我们2018-05-31