我已經看到了這個問題問了很多,我似乎無法找到有關SSRS 2008年則DateDiff爲工作日
一個明確的答案「怎麼只有兩個日期之間計算工作日?」
下面的表達式會給我總的日子,但我期待排除週六和週日。
=DateDiff("d",Parameters!STARTDATE.Value,Parameters!ENDDATE.Value)
我將不勝感激關於如何實現這一點的具體幫助。
預先感謝您。
我已經看到了這個問題問了很多,我似乎無法找到有關SSRS 2008年則DateDiff爲工作日
一個明確的答案「怎麼只有兩個日期之間計算工作日?」
下面的表達式會給我總的日子,但我期待排除週六和週日。
=DateDiff("d",Parameters!STARTDATE.Value,Parameters!ENDDATE.Value)
我將不勝感激關於如何實現這一點的具體幫助。
預先感謝您。
爲SSRS翻譯的鏈接中的SQL(Number of working days between two dates):希望這會給你一個開始的好地方。將其輸入到文本框的表達式中。
=(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)
你是一個天才......謝謝你 – Lance
此代碼不完全正確。一年可以在星期六或星期天開始或結束。例如,2011年在星期六開始,在星期六結束。 1月1日& 2011年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)
的可能重複[工作日計算(http://stackoverflow.com/questions/7444846/business-days-calculation) –
如果我使用的查詢在其他職位,我在哪裏將該查詢放置在SSRS中?以及如何在文本框中引用它? – Lance
最好的辦法是創建一個函數,我應該這樣想。但如何計算工作日,這是一個不同的問題。必須承認我認爲DateDiff是標準的SQL函數? –