このロジックをいくつかのエッジ ケースで試してみたところ、うまくいくようです。
SELECT DATEDIFF(d, @dFrom, @dTo)/7+1
+ CASE WHEN DATEPART(dw,@dFrom) IN (1,7) THEN -1 ELSE 0 END
+ CASE WHEN DATEPART(dw,@dTo) IN (1,7) THEN -1 ELSE 0 END
開始日または終了日が週末である場合の処理方法に応じて、CASE ステートメントを変更できます。私の場合、開始日または終了日が土曜日または日曜日の場合、週末は含めません。