Jeg prøvede denne logik med adskillige kantsager, og det ser ud til at virke.
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
Du kan ændre CASE-udsagnene alt efter, hvordan du vil håndtere sager, hvor start- eller slutdatoen er i en weekend. I mit tilfælde medtager jeg ikke weekenden, hvis start- eller slutdatoen er en lørdag eller søndag.