我希望有人可以与我分享经验。我已经使用以下ssrs表达式将SSRS报告参数默认为当月的最后一天几个月没有问题:
=DateAdd(“d”, -1, DateSerial(Year(Now()), Month(Now()), 1))
今天早上,而不是返回2016年3月31日,表达式将停留在2016年3月29日。任何人都可以帮助我理解为什么会这样吗?
答案 0 :(得分:1)
您将在某一天减去当月的第一天。 你必须得到下个月的第一天并减去一天。
=DateAdd("d", -1, DateSerial(2016, Month(Now.AddMonths(1)), 1))
返回3/31/2016
如果有帮助,请告诉我。
答案 1 :(得分:0)
您显示的表达式将显示上个月的最后一天,而不是本月的最后一天。
您希望进行日期算术,而不是从头开始构建日期。想想如果你使用当前年份会发生什么,但是增加一个月来找到你需要的月份。
获得当月最后一天最安全的方法是计算本月的第一天,加1个月然后减去一天:
=DateAdd(DateInterval.Day, -1, DateAdd(DateInterval.Month, 1, DateAdd(DateInterval.Day, 1-Day(Today), Today)))
如果您真正想要的是上个月的最后一天,那么这很简单:
=DateAdd(DateInterval.Day, 0-Day(Today), Today)