Como contar a quantidade de dias úteis existentes entre duas datas e obter uma lista dessas datas utilizando o SQL Server
1. Declarar variáveis de tipo de dados data (DECLARE, DATETIME):
DECLARE @DataExemplo DATETIME = '2023-01-01';
2. Contar dias entre datas (DATEDIFF, DAY):
SELECT DATEDIFF(DAY, '2023-01-01', '2023-01-10') AS DiasDeDiferenca;
3. Contar semanas entre datas (DATEDIFF, WEEK):
SELECT DATEDIFF(WEEK, '2023-01-01', '2023-01-31') AS SemanasDeDiferenca;
4. Contar dias em fim de semana incompleto (CASE, WHEN, DATENAME, SUNDAY, MONDAY):
SELECT COUNT(*) FROM SuaTabela WHERE (CASE WHEN DATENAME(WEEKDAY, Data) = 'Sunday' THEN 1 WHEN DATENAME(WEEKDAY, Data) = 'Monday' THEN 1 ELSE 0 END) = 1;
5. Hierarquia de datas em Expressão de Tabela Comum (CTE):
WITH HierarquiaDeDatas AS ( SELECT Data, DATENAME(MONTH, Data) AS Mes, DATENAME(YEAR, Data) AS Ano FROM SuaTabela ) SELECT * FROM HierarquiaDeDatas;
6. Filtrar registros por conjunto de valores (WHERE, NOT IN):
SELECT * FROM SuaTabela WHERE CampoData NOT IN ('2023-01-01', '2023-02-01', '2023-03-01');
Cientista de Dados e Consultor de Soluções Digitais e Analíticas
@fabioms