Problema:
Você gostaria de exibir a data de ontem (sem hora) em um banco de dados SQL Server.
Solução:
SELECT DATEADD(day, -1, CAST(GETDATE() AS date)) AS YesterdayDate;
Supondo que hoje seja 24/09/2020, o resultado é:
ontem_date |
---|
23-09-2020 |
Discussão:
Para obter a data de ontem, você precisa subtrair um dia da data de hoje. Use
GETDATE()
para obter a data de hoje (o tipo é datetime
) e converta-o para date
. No SQL Server, você pode subtrair ou adicionar qualquer número de dias usando o DATEADD()
função. O
DATEADD()
função recebe três argumentos:datepart
, number
e date
. Aqui, o valor de datepart
é day
, porque a unidade de tempo que você deseja subtrair é dia. O segundo argumento é -1 (você subtrai 1 dia, que é o mesmo que adicionar -1 dia). O terceiro argumento é a data de hoje — a data da qual você deseja subtrair. Claro, você pode voltar em qualquer intervalo de tempo com a mesma facilidade. Aqui está um exemplo:
SELECT DATEADD(month, -5, CAST(GETDATE() AS date));
Um intervalo de tempo também pode ser
added
a uma data. Então, aqui está uma maneira se você quiser obter a data de amanhã:SELECT DATEADD(day, 1, CAST(GETDATE() AS date)) AS TomorrowDate;