Free cookie consent management tool by TermsFeed Policy Generator
  •  Video
  •    72 page views
  •   2401 video views
  • 2025, September 24, Wednesday

#080 Como contar e obter dias úteis no SQL Server

Como contar a quantidade de dias úteis existentes entre duas datas e obter uma lista dessas datas utilizando o SQL Server

Iremos conhecer as técnicas:

1\. Declarar variáveis de tipo de dados data (DECLARE, DATETIME):

  • Para declarar uma variável de data, você pode usar a instrução DECLARE seguida do nome da variável e do tipo de dados, neste caso, DATETIME. Exemplo:

DECLARE @DataExemplo DATETIME = '2023-01-01';

2\. Contar dias entre datas (DATEDIFF, DAY):

  • A função DATEDIFF permite calcular a diferença entre duas datas em unidades específicas. Para contar dias, você pode usar DAY como unidade. Exemplo:

SELECT DATEDIFF(DAY, '2023-01-01', '2023-01-10') AS DiasDeDiferenca;

3\. Contar semanas entre datas (DATEDIFF, WEEK):

  • Similar ao exemplo anterior, mas usando WEEK como unidade. Exemplo:

SELECT DATEDIFF(WEEK, '2023-01-01', '2023-01-31') AS SemanasDeDiferenca;

4\. Contar dias em fim de semana incompleto (CASE, WHEN, DATENAME, SUNDAY, MONDAY):

  • Usando uma expressão CASE com WHEN e a função DATENAME para identificar o dia da semana, você pode contar os dias que são fins de semana incompletos. Exemplo:

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):

  • Uma expressão de tabela comum (CTE) pode ser usada para criar uma hierarquia de datas. Exemplo:

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):

  • Para filtrar registros que não estão em um conjunto específico, você pode usar a cláusula NOT IN em conjunto com WHERE. Exemplo:

SELECT * FROM SuaTabela

WHERE CampoData NOT IN ('2023-01-01', '2023-02-01', '2023-03-01');

This content contains
  • Content Video
  • Language Portuguese
  • Duration 8m 14s
  • Subtitles Sim

  • Reading time 1 min 26 seg

avatar
Fabio Santos

Data Scientist and Consultant for Digital and Analytics Solutions


  • Share

Youtube Channel

@fabioms

Subscribe now