【问题标题】:SSRS 2008 Datediff for Working DaysSSRS 2008 工作日日期差异
【发布时间】:2014-02-11 16:05:23
【问题描述】:

我看到这个问题问了很多,我似乎找不到一个明确的答案

“如何只计算两个日期之间的工作日?”

下面的表达式将给出总天数,但我希望排除周六和周日。

=DateDiff("d",Parameters!STARTDATE.Value,Parameters!ENDDATE.Value)   

我将不胜感激有关如何完成此操作的具体帮助。

提前谢谢你。

【问题讨论】:

  • Business Days calculation 的可能重复项
  • 如果我在另一篇文章中使用该查询,我会将该查询放在 SSRS 中的哪个位置?以及如何在文本框中引用它?
  • 最好的办法是创建一个函数,我想。不过,这与如何计算工作日不同。必须承认我认为 DateDiff 是标准的 sql 函数?
  • 谢谢 - DateDiff 是一个标准的 SQL 函数。但是,从该计算中排除周末在 SQL 中是不标准的。

标签: ssrs-2008 datediff


【解决方案1】:

此代码不完全正确。一年可以从星期六或星期日开始或结束。例如,2011 年从星期六开始,到星期六结束。 2011 年 1 月 1 日和 2 日分别是周六和周日,2011 年 12 月 31 日也是周六。上面的代码没有考虑这种情况。下面的代码是正确的:

= (DateDiff(DateInterval.day,Parameters!BeginDate.Value,Parameters!EndDate.Value)+1)
- (DateDiff(DateInterval.WeekOfYear,Parameters!BeginDate.Value,Parameters!EndDate.Value)*2) 
- IIF(Weekday(Parameters!BeginDate.Value,1) = 1,1,0)
- IIF(Weekday(Parameters!BeginDate.Value,1) = 7,1,0)
- IIF(Weekday(Parameters!EndDate.Value,1) = 1,1,0)
- IIF(Weekday(Parameters!EndDate.Value,1) = 7,1,0)

【讨论】:

    【解决方案2】:

    链接中的 SQL (Number of working days between two dates) 为 SSRS 翻译:希望这将为您提供一个好的起点。将此输入到文本框的表达式中。

    =(DateDiff(DateInterval.day,Parameters!STARTDATE.Value,Parameters!ENDDATE.Value)+1)
    -(DateDiff(DateInterval.WeekOfYear,Parameters!STARTDATE.Value,Parameters!ENDDATE.Value)*2)
    -(iif(Weekday(Parameters!STARTDATE.Value) = 7,1,0)
    -(iif(Weekday(Parameters!ENDDATE.Value) = 6,1,0))-1)
    

    【讨论】:

      【解决方案3】:

      获取两个日期之间的工作日的简单方法是:

      DateDiff(DD, BeginDate, EndDate) - DateDiff(WK, Begindate, EndDate)*2
      

      【讨论】:

      • 不知道它是如何/为什么起作用的,但它对我有用。很高兴有一个简单的单线。
      【解决方案4】:

      下面的代码在所有情况下都能正常工作

      = (DateDiff(DateInterval.day,Parameters!BeginDate.Value,Parameters!EndDate.Value)+1)
      - (DateDiff(DateInterval.WeekOfYear,Parameters!BeginDate.Value,Parameters!EndDate.Value)*2)
      - IIF(Weekday(Parameters!BeginDate.Value,1) = 1,1,0)
      - IIF(Weekday(Parameters!EndDate.Value,1) = 7,1,0)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-06-02
        • 1970-01-01
        • 1970-01-01
        • 2018-10-02
        • 2022-06-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多