Date SSRS上个月一年的第一天

Date SSRS上个月一年的第一天,date,reporting-services,Date,Reporting Services,我有一份SSRS报告,应该显示上个月最后一天的日历YTD销售额。动态计算开始日期参数时遇到问题 如果我在2017年12月15日运行报告,上个月的最后一天是11月30日,因此我希望看到2017年1月1日至2017年11月30日。如果我在2018年1月15日运行报告,上个月的最后一天是12月31日,因此我希望看到2017年1月1日至2017年12月31日 对于开始日期,我使用了Today.AddMonths(1-Today.month).AddDays(1-Today.day).AddYears(1

我有一份SSRS报告,应该显示上个月最后一天的日历YTD销售额。动态计算开始日期参数时遇到问题

如果我在2017年12月15日运行报告,上个月的最后一天是11月30日,因此我希望看到2017年1月1日至2017年11月30日。如果我在2018年1月15日运行报告,上个月的最后一天是12月31日,因此我希望看到2017年1月1日至2017年12月31日

对于开始日期,我使用了Today.AddMonths(1-Today.month).AddDays(1-Today.day).AddYears(1-Today.year),它实际上只是根据报表的运行日期返回当前年度的第一天。除一月外,任何月份都可以使用

当我使用该公式并在1月份运行报告时,它返回的是2018年1月1日,而不是2017年1月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

用于结束日期

=DateAdd("d",-(Day(today)), Today)
这里我们只是从今天的日期中减去天数。我们减去的天数是今天的天数,因此对于2018-01-06,我们减去6天,即2017-12-31
如果我们在2018年6月20日运行此程序,我们将遵循相同的流程,取2018-06-20减去20天,即2018-05-31,以获得您的开始日期使用此

=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

用于结束日期

=DateAdd("d",-(Day(today)), Today)
这里我们只是从今天的日期中减去天数。我们减去的天数是今天的天数,因此对于2018-01-06,我们减去6天,即2017-12-31
如果我们在2018年6月20日运行此程序,我们将遵循相同的流程,取2018-06-20减去20天,即2018-05-31

谢谢你,艾伦!这正是我所需要的,我感谢你的帮助,也感谢你的详细解释。谢谢你,艾伦!这正是我所需要的,我感谢你的帮助,也感谢你的详细解释。