SSRS 2008 Datediff工作日

Lan*_*nce 7 datediff ssrs-2008

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

"如何计算两个日期之间的工作日?"

下面的表达式将给我总天数,但我希望排除星期六和星期日.

=DateDiff("d",Parameters!STARTDATE.Value,Parameters!ENDDATE.Value)   
Run Code Online (Sandbox Code Playgroud)

我很感激有关如何实现这一目标的具体帮助.

先感谢您.

小智 5

这段代码并不完全正确.一年可以在周六或周日开始或结束.例如,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)
Run Code Online (Sandbox Code Playgroud)


Pop*_*ops 3

链接中的 SQL(两个日期之间的工作日数)针对 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)
Run Code Online (Sandbox Code Playgroud)