Arredondando datas
O SQL Server não tem uma forma intuitiva de arredondar para baixo para o mês, hora ou minuto. Porém, você pode combinar as funções DATEADD() e DATEDIFF() para fazer esse arredondamento.
Para arredondar a data 1914-08-16 para baixo para o ano, chamaríamos DATEADD(YEAR, DATEDIFF(YEAR, 0, '1914-08-16'), 0).
Para arredondar a data para baixo para o mês, chamaríamos DATEADD(MONTH, DATEDIFF(MONTH, 0, '1914-08-16'), 0).
Isso também funciona para várias outras partes de data.
Este exercício faz parte do curso
Análise de Séries Temporais no SQL Server
Instruções do exercício
- Use
DATEADD()eDATEDIFF()em conjunto com partes de data para arredondar nosso horário para o dia, a hora e o minuto.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
DECLARE
@SomeTime DATETIME2(7) = '2018-06-14 16:29:36.2248991';
-- Fill in the appropriate functions and date parts
SELECT
DATEADD(___, DATEDIFF(DAY, 0, @SomeTime), 0) AS RoundedToDay,
___(___, ___(___, 0, @SomeTime), 0) AS RoundedToHour,
___(___, ___(___, 0, @SomeTime), 0) AS RoundedToMinute;