Problema:
Você gostaria de exibir a data de ontem (sem hora) em um banco de dados MySQL.
Solução:
SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY) AS yesterday_date;
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
CURDATE()
para obter a data de hoje. No MySQL, você pode subtrair qualquer intervalo de data usando o DATE_SUB()
função. Aqui, como você precisa subtrair um dia, você usa DATE_SUB(CURDATE(), INTERVAL 1 DAY)
para obter a data de ontem. Observe que o resultado desse cálculo ainda possui o tipo de coluna data. Você pode voltar em qualquer intervalo de tempo com a mesma facilidade. Aqui está um exemplo:
SELECT DATE_SUB(CURDATE(), INTERVAL 2 MONTH) AS date_two_months_ago;
Você também pode calcular a data de amanhã com muita facilidade. Use o
DATE_ADD()
função para adicionar um intervalo a uma data. SELECT DATE_ADD(CURDATE(), INTERVAL 1 DAY) AS tomorrow_date;