
Saiba como obter a data atual sem o tempo no SQL Server.
Recentemente me perguntaram como obter a data atual sem o tempo no SQL Server.
O programador precisava saber a data no seguinte formato: yyyy/mm/dd usando o getdate() porém o tempo ele gostaria que fosse 00:00:00.0
No caso ele gostaria de limpar os dados de uma tabela a partir da meia noite de uma determinada data.
Isso é bem simples usar o DATEDIFF da seguinte forma abaixo:
SELECT DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
Além disso caso você queria saber outras datas vou colocar outros exemplos abaixo para que dê um norte a você.
SELECT DATEADD(day, DATEDIFF(day, 0, GETDATE()), -1) -- Ontem SELECT DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0) -- Primeiro dia do mês. SELECT DATEADD(month, DATEDIFF(month, 0, GETDATE()), -1) -- Último dia do mês SELECT DATEADD(month, DATEDIFF(month, 0, GETDATE()), 31) -- Primeiro dia do próximo mês.
Esse tipo de consulta é muito utilizada para detectar datas para fazer deletes, updates e etc, além de auxiliar bastante em relatórios.
Espero que essas informações sejam úteis para vocês. Caso queiram saber mais por favor, me perguntem através dos comentários.
Grande abraço!