Problem:
Du vil gerne vise gårsdagens dato (uden tid) i en SQL Server-database.
Løsning:
SELECT DATEADD(day, -1, CAST(GETDATE() AS date)) AS YesterdayDate;
Forudsat at i dag er 2020-09-24, er resultatet:
yesterday_date |
---|
2020-09-23 |
Diskussion:
For at få gårsdagens dato skal du trække en dag fra dagens dato. Brug GETDATE()
for at få dagens dato (typen er datetime
) og cast den til date
. I SQL Server kan du trække fra eller tilføje et hvilket som helst antal dage ved hjælp af DATEADD()
funktion.
DATEADD()
funktion tager tre argumenter:datepart
, number
og date
. Her er værdien af datepart
er day
, fordi den tidsenhed, du vil trække fra, er dag. Det andet argument er -1 (du trækker 1 dag fra, hvilket er det samme som at tilføje -1 dag). Det tredje argument er dagens dato – den dato, du vil trække fra.
Selvfølgelig kan du gå tilbage med et hvilket som helst tidsinterval lige så nemt. Her er et eksempel:
SELECT DATEADD(month, -5, CAST(GETDATE() AS date));
Et tidsinterval kan også added
til en date. Så her er en måde, hvis du vil have morgendagens dato:
SELECT DATEADD(day, 1, CAST(GETDATE() AS date)) AS TomorrowDate;