Problem:
Chcesz wyświetlić wczorajszą datę (bez czasu) w bazie danych SQL Server.
Rozwiązanie:
SELECT DATEADD(day, -1, CAST(GETDATE() AS date)) AS YesterdayDate;
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 GETDATE() aby uzyskać dzisiejszą datę (typ to datetime ) i prześlij go na date . W SQL Server możesz odjąć lub dodać dowolną liczbę dni za pomocą DATEADD() funkcja.
DATEADD() funkcja przyjmuje trzy argumenty:datepart , number i date . Tutaj wartość datepart jest day , ponieważ jednostką czasu, którą chcesz odjąć, jest dzień. Drugi argument to -1 (odejmujesz 1 dzień, co jest równoznaczne z dodaniem -1 dnia). Trzeci argument to dzisiejsza data — data, od której chcesz odjąć.
Oczywiście równie łatwo można się cofnąć o dowolny przedział czasu. Oto przykład:
SELECT DATEADD(month, -5, CAST(GETDATE() AS date));
Przedział czasu można również added na randkę. Oto sposób, jeśli chcesz uzyskać jutrzejszą datę:
SELECT DATEADD(day, 1, CAST(GETDATE() AS date)) AS TomorrowDate;