T-SQL obtenir le nombre de jours ouvrés entre 2 dates

Je veux calculer le nombre de jours ouvrés entre 2 dates. Par exemple, si je veux calculer le nombre de jours ouvrables entre 2013-01-10 et 2013-01-15, le résultat doit être de 3 jours de travail (je ne prends pas en compte le dernier jour dans cet intervalle et je soustrais les samedis et dimanches). J'ai le code suivant qui fonctionne dans la plupart des cas, à l'exception de celui dans mon exemple.

  SELECT (DATEDIFF(day, '2013-01-10', '2013-01-15')) 
    - (CASE WHEN DATENAME(weekday, '2013-01-10') = 'Sunday' THEN 1 ELSE 0 END)
    - (CASE WHEN DATENAME(weekday, DATEADD(day, -1, '2013-01-15')) = 'Saturday' THEN 1 ELSE 0 END)

Comment puis-je accomplir? Dois-je passer par tous les jours et de les vérifier? Ou est-il un moyen facile de le faire.

Comment allez-vous tenir compte des jours fériés qui n'est pas un week-end?
double possible de Nombre de jours de travail entre les deux dates

OriginalL'auteur Rocshy | 2013-02-07