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');