【问题标题】:SSRS Last Week Monday and SUndaySSRS 上周周一和周日
【发布时间】:2014-03-18 06:24:31
【问题描述】:

我需要最后一周的周一和周日,比如今天是 3 月 18 日,因此是 SSRS 表达式 应该返回 3月10日-周一 3月16日-周日

我可以使用 SQL 得到它

select dateadd(d,(2-datepart(dw, getdate())), dateadd(ww,-1,getdate()))



select dateadd(d,(1-datepart(dw, getdate())), getdate())

不确定如何通过 SSRS 表达式完成

【问题讨论】:

    标签: reporting-services


    【解决方案1】:

    SSRS VBA 允许与 Sql 非常相似的日期操作表达式,主要区别在于使用 DateInterval 枚举。在不检查您的表达式的情况下,它将转换为 SSRS VBA,如下所示:

    上周一:

    =DateAdd(DateInterval.Day, 2-WeekDay(Today), DateAdd(DateInterval.Day, -7, Today()))
    

    上周日:

    =DateAdd(DateInterval.Day, 1-WeekDay(Today), Today())
    

    【讨论】:

    • 上周六的表情呢?
    • 星期六是 7,所以使用那个数字而不是上面一天使用的数字
    • 如何找到最后一个到最后一个星期一
    • @JibinMathew 只需将另一个 DateAdd(DateInterval.Week, -1, ... 包裹在最后一个星期一的表达式上
    【解决方案2】:

    要从上周获得星期日: (注:上周日与上周日不同)。

    =DateAdd(DateInterval.Day, 1-WeekDay(Today), DateAdd(DateInterval.Day, -7, Today))
    

    从上周开始到星期六:

    =DateAdd(DateInterval.Day, 7-WeekDay(Today), DateAdd(DateInterval.Day, -7, Today))
    

    工作日值如下:
    1 - 周日
    2 - 星期一
    3 - 星期二
    4 - 星期三
    5 - 星期四
    6 - 星期五
    7 - 星期六

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      • 1970-01-01
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多