【问题标题】:SSRS - How to show rolling 6 months where the start date is always a Saturday?SSRS - 如何显示开始日期始终为星期六的滚动 6 个月?
【发布时间】:2018-11-08 16:01:27
【问题描述】:

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

结束日期总是最后一个星期日,这里:=DateAdd("d", 1 - WeekDay(Today(), 1), Today())

我需要帮助的是如何编写一个公式从今天开始返回 6 个月并选择该范围内的第一个星期六..

提前致谢。

【问题讨论】:

    标签: date reporting-services formula


    【解决方案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% 计算,以计算出正确的调整天数。

    【讨论】:

      猜你喜欢
      • 2020-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 2016-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多