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;