Рабочие дни между двумя датами

Есть ли встроенная функция SQL, которая будет рассчитывать рабочие дни между двумя датами? Или это единственное решение, указанная ниже? Кажется странным, что его нет! Думаю, это часто используется.

SELECT
   (DATEDIFF(dd, @fromdate, @todate) + 1)
  -(DATEDIFF(wk, @fromdate, @todate) * 2)
  -(CASE WHEN DATENAME(dw, @fromdate) = 'Sunday' THEN 1 ELSE 0 END)
  -(CASE WHEN DATENAME(dw, @todate) = 'Saturday' THEN 1 ELSE 0 END)
  As NoOfWeekDays

person ZigL    schedule 15.03.2017    source источник
comment
Определение рабочих дней отличается от бизнеса к бизнесу и даже может иметь несколько определений в рамках одной организации; корпоративный персонал может работать с понедельника по пятницу, но в дополнительном офисе могут быть добавлены субботы, а склад работает 7 дней в неделю. Также следует учитывать праздники, которые не являются рабочими днями, но случаются не каждую неделю, и, опять же, они сильно отличаются от одной организации к другой. В конечном итоге любой расчет рабочих дней будет довольно специфичным для конкретного варианта использования.   -  person KeithS    schedule 15.03.2017
comment
OK. Спасибо. Имеет смысл, но я подумал, что функция, похожая на ЧИСТРАБДНИ в Excel, может существовать в SQL!   -  person ZigL    schedule 04.04.2017