Problem:
Du vill visa gårdagens datum (utan tid) i en SQL Server-databas.
Lösning:
SELECT DATEADD(day, -1, CAST(GETDATE() AS date)) AS YesterdayDate;
Om vi antar att det är 2020-09-24 idag är resultatet:
yesterday_date |
---|
2020-09-23 |
Diskussion:
För att få gårdagens datum måste du subtrahera en dag från dagens datum. Använd GETDATE()
för att få dagens datum (typen är datetime
) och casta den till date
. I SQL Server kan du subtrahera eller lägga till valfritt antal dagar med DATEADD()
funktion.
DATEADD()
funktionen tar tre argument:datepart
, number
och date
. Här är värdet på datepart
är day
, eftersom tidsenheten du vill subtrahera är dag. Det andra argumentet är -1 (du subtraherar 1 dag, vilket är samma sak som att lägga till -1 dag). Det tredje argumentet är dagens datum – det datum som du vill subtrahera.
Naturligtvis kan du gå tillbaka med vilket tidsintervall som helst lika enkelt. Här är ett exempel:
SELECT DATEADD(month, -5, CAST(GETDATE() AS date));
Ett tidsintervall kan också added
till en dejt. Så här är ett sätt om du vill få morgondagens datum:
SELECT DATEADD(day, 1, CAST(GETDATE() AS date)) AS TomorrowDate;