Probleem:
U wilt de datum van gisteren (zonder tijd) weergeven in een SQL Server-database.
Oplossing:
SELECT DATEADD(day, -1, CAST(GETDATE() AS date)) AS YesterdayDate;
Ervan uitgaande dat het vandaag 24-09-2020 is, is het resultaat:
| yesterday_date |
|---|
| 23-09-2020 |
Discussie:
Om de datum van gisteren te krijgen, moet u één dag aftrekken van de datum van vandaag. Gebruik GETDATE() om de datum van vandaag te krijgen (het type is datetime ) en cast het naar date . In SQL Server kunt u een willekeurig aantal dagen aftrekken of optellen met behulp van de DATEADD() functie.
De DATEADD() functie heeft drie argumenten:datepart , number , en date . Hier de waarde van datepart is day , omdat de tijdseenheid die u wilt aftrekken dag is. Het tweede argument is -1 (je trekt 1 dag af, wat hetzelfde is als -1 dag optellen). Het derde argument is de datum van vandaag:de datum waarvan u wilt aftrekken.
Natuurlijk kunt u net zo gemakkelijk teruggaan met elk tijdsinterval. Hier is een voorbeeld:
SELECT DATEADD(month, -5, CAST(GETDATE() AS date));
Er kan ook een tijdsinterval worden added tot een datum. Dus, hier is een manier als je de datum van morgen wilt weten:
SELECT DATEADD(day, 1, CAST(GETDATE() AS date)) AS TomorrowDate;