Problem:
Chcesz wyświetlić wczorajszą datę (bez czasu) w bazie danych MySQL.
Rozwiązanie:
SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY) AS yesterday_date;
Zakładając, że dzisiaj jest 24.09.2020 r., wynik jest następujący:
yesterday_date |
---|
23.09.2020 |
Dyskusja:
Aby uzyskać wczorajszą datę, musisz odjąć jeden dzień od dzisiejszej daty. Użyj CURDATE()
aby uzyskać dzisiejszą datę. W MySQL możesz odjąć dowolny przedział dat za pomocą DATE_SUB()
funkcjonować. Tutaj, ponieważ musisz odjąć jeden dzień, użyj DATE_SUB(CURDATE(), INTERVAL 1 DAY)
aby uzyskać wczorajszą datę. Zwróć uwagę, że wynik tego obliczenia nadal zawiera datę typu kolumny.
Równie łatwo możesz cofnąć się o dowolny przedział czasu. Oto przykład:
SELECT DATE_SUB(CURDATE(), INTERVAL 2 MONTH) AS date_two_months_ago;
Możesz również bardzo łatwo obliczyć jutrzejszą datę. Użyj DATE_ADD()
funkcja dodawania interwału do daty.
SELECT DATE_ADD(CURDATE(), INTERVAL 1 DAY) AS tomorrow_date;