Boa tarde amigos, recentemente me pediram para disponibilizar um script que encontre apenas os dias da semana entre duas datas. Acredito que a pessoa estava querendo alguma coisa com os dias úteis.
Questionei sobre os feriados durante a semana, mas mesmo assim insistiu na idéia dos dias da semana. Ok, então vou disponibilizar.
DECLARE @DataInicial datetime, @DataFinal datetime SELECT @DataInicial = '2017/01/01', @DataFinal = '2017/03/06'; WITH TodosOsDias AS (SELECT @DataInicial AS DiaSemana, DATEDIFF(DAY, @DataInicial, @DataFinal) AS DiffDays UNION ALL SELECT DATEADD(dd, 1, DiaSemana), DiffDays - 1 FROM TodosOsDias TOD WHERE DiffDays > 0) SELECT COUNT(*) FROM TodosOsDias WHERE DATEPART(dw, DiaSemana) IN (2, 3, 4, 5, 6);
Espero que seja útil para vocês também, caso vocês conheça mais formas de obter essa informação, compartilhe conosco nos comentários, a comunidade SQL Server agradece!
Grande Abraço!