Funktionen DatumDiff

Gäller för
Access för Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Returnerar ett värde av datatypen Variant (Long) som anger antalet tidsintervall mellan två datum.

Syntax

DateDiff(interval, date1, date2[, firstdayofweek][, firstweekofyear])

Funktionen DateDiff har följande argument:

argument Beskrivning
interval Obligatoriskt. Ett stränguttryck som representerar det tidsintervall som du använder för att beräkna skillnaden mellan date1 och date2.
date1, date2 Obligatoriskt. Variant (Datum). Två datum som du vill använda i beräkningen.
firstdayofweek Valfritt. En konstant som anger den första dagen i veckan. Om du inte anger det används söndag.
firstweekofyear Valfritt. En konstant som anger årets första vecka. Om du inte anger det är den första veckan den vecka då den 1 januari infaller.

Inställningar

Argumentet interval har följande inställningar:

Inställning Beskrivning
yyyy År
q Kvartal
m Månad
y Dag på året
d Dag
w Veckodag
ww Vecka
h Timme
n Minut
s Sekund

Argumentet firstdayofweek har följande inställningar:

Konstant Värde Beskrivning
vbUseSystem 0 Använder NLS API-inställningen.
vbSunday 1 Söndag (standard)
vbMonday 2 Måndag
vbTuesday 3 Tisdag
vbWednesday 4 Onsdag
vbThursday 5 Torsdag
vbFriday 6 Fredag
vbSaturday 7 Lördag
Konstant Värde Beskrivning
vbUseSystem 0 Använder NLS API-inställningen.
vbFirstJan1 1 Börjar med den vecka då den 1 januari infaller (standard).
vbFirstFourDays 2 Börjar med den första vecka där minst fyra dagar ligger i det nya året.
vbFirstFullWeek 3 Börjar med årets första fullständiga vecka.

Kommentarer

Du kan använda DateDiff funktionen för att avgöra hur många angivna tidsintervall som finns mellan två datum. Du kan till exempel beräkna DateDiff antalet dagar mellan två datum eller antalet veckor från nu till slutet av året.

Om du vill beräkna antalet dagar mellan date1 och date2kan du använda antingen Dag på året ("y") eller Dag ("d"). When interval is Weekday ("w"), DateDiff returnerar antalet veckor mellan de två datumen. Om date1 infaller på en måndag DateDiff räknas antalet måndagar fram till date2. Det räknas date2 men inte date1. Om interval är vecka ("ww"), returnerar funktionen dock DateDiff antalet kalenderveckor mellan de två datumen. Funktionen räknar antalet söndagar mellan date1 och date2. DateDiff räknas date2 om den infaller på en söndag, men den räknas date1inte, även om den infaller på en söndag.

Om date1 refererar till ett senare tillfälle än date2returnerar funktionen DateDiff ett negativt tal.

Argumentet firstdayofweek påverkar beräkningar som använder symbolerna och "w""ww" intervall.

Om date1 eller date2 är en datumliteral blir det angivna året en permanent del av datumet. Men om date1 eller date2 omges av dubbla citattecken (" "), och du utelämnar året, infogas aktuellt år i koden varje gång eller-uttrycket date1date2 utvärderas. På så sätt är det möjligt att skriva kod som du kan använda under olika år.

När du jämför 31 december med 1 januari nästa år DateDiff returnerar () värdet 1 för år trots"yyyy" att det bara har gått en dag.

Obs

För date1 och date2, om egenskapsinställningen Calendar är gregoriansk måste det angivna datumet vara gregorianskt. Om kalendern är Hijri måste det datum som anges vara Hijri.

Exempel på DatumDiff-fråga

Uttryck Resultat
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; Returnerar differensen i år mellan datumet 01/01/2010 och värdena i fältet DateofSale .
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Returnerar differensen, i kvartal baserat på kalenderåret, mellan systemdatumet och DateofSale, och visar den i kolumnen DaysSinceSale .
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Returnerar differensen i dagar mellan systemdatumet och DateofSaleoch visar den i kolumnen DaysSinceSale .
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Returnerar differensen i dagar mellan systemdatumet och DateofSaleoch visar den i kolumnen DaysSinceSale .
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Returnerar differensen i veckodagar mellan systemdatumet och DateofSaleoch visar den i kolumnen DaysSinceSale . Om DateofSale infaller på en måndag DateDiff räknas antalet måndagar fram till systemdatumet. Systemdatumet räknas men inte värdet DateofSale .
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Returnerar differensen i kalenderveckor mellan systemdatumet och DateofSaleoch visar den i kolumnen DaysSinceSale . Funktionen räknar antalet söndagar mellan DateofSale systemdatumet. Systemdatumet räknas om det infaller på en söndag, men det räknas DateofSaleinte, även om det infaller på en söndag.
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Returnerar differensen i timmar mellan systemdatumet och DateTimeoch visar den i kolumnen DaysSinceSale .
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Returnerar differensen i minuter mellan systemdatumet och DateTimeoch visar den i kolumnen DaysSinceSale .
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Returnerar differensen i sekunder mellan systemdatumet och DateTimeoch visar den i kolumnen DaysSinceSale .

Använda funktionen DatumDiff i ett uttryck

Du kan använda funktionen DateDiff var som helst där du kan använda uttryck. Anta till exempel att du har ett formulär som du använder för att uppfylla kundorder. I tabellen Order har du ett fält med namn ReceiveBefore som innehåller det datum då kunden behöver få sin order levererad. Du kan använda DateDiff funktionen med en textruta i formuläret för att visa hur många dagar det återstår innan ordern måste levereras.

Under förutsättning att det tar tio dagar att leverera en order anger du egenskapen Kontrollkälla för textrutan enligt följande:

=DateDiff("d", Now(), [Orders].[ReceiveBefore])-10

När du öppnar formuläret i formulärvy visas i textrutan hur många dagar det återstår innan ordern måste levereras. Om det är mindre än 10 dagar kvar tills kunden behöver få sin order är siffran i textrutan negativ. Den anger hur många dagar försenad beställningen blir om du skickar den omedelbart.

Använda funktionen DatumDiff i VBA-kod

I det DateDiff här exemplet används funktionen för att visa antalet dagar mellan ett angivet datum och idag.

Dim TheDate As Date  ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg

Se även

Välja rätt datumfunktion