SSRS-如何显示滚动的6个月,而开始日期始终是星期六?

时间:2018-11-08 16:01:28

标签: date reporting-services formula

我需要有关计算报告日期参数的开始日期的帮助。

结束日期将始终是最后一个星期日,在这里:= DateAdd(“ d”,1-WeekDay(Today(),1),Today())

我需要帮助的是如何编写一个公式,从今天起6个月后再选择该范围内的第一个星期六。

先谢谢了。

1 个答案:

答案 0 :(得分:1)

假设您的开始日期是星期日,那么您可以使用此...

=DATEADD(
        DateInterval.Day, 
        7 - WEEKEDAY( DATEADD(DateInterval.Month,-6,Today()), FirstDayOfWeek.Sunday),  
        DATEADD(DateInterval.Month,-6,Today())
        )

其工作原理如下

WEEKEDAY( DATEADD(DateInterval.Month,-6,Today()), FirstDayOfWeek.Sunday)

采用今天的日期,减去6个月,然后找出星期几。运行今天(2018-11-08)可以使用(2018-05-10)这是星期四,这是第5天

星期六是第7天(如果您一周的第一天是星期日)。由于不能有大于7的数字,因此我们可以简单地减去7减去从上面降落的天数(这使我们需要进行2天的调整)。

最后,外部DATEADD函数只是说将我们计算的2天添加到6个月前的日期。

希望如此!?

如果一周的第一天不是您的星期日,那么您可能必须对第二个参数进行一些Mod%计算,以计算要调整的正确天数。