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;