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;