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 representerar antalet tidsintervall mellan två angivna datum.

Syntax

DatumDiff (intervall, datum1, datum2 [, första_dagen_i_veckan] [, första_veckanpååret] )

Syntaxen för funktionen DatumDiff har följande argument:

argument Beskrivning
intervall Obligatoriskt. Stränguttryck som är det tidsintervall du använder för att beräkna skillnaden mellan datum1 och datum2.
datum1, datum2 Obligatoriskt. Variant (Datum). Två datum som du vill använda i beräkningen.
förstadageniveckan Valfritt. En konstant som anger den första dagen i veckan. Om argumentet utelämnas används söndag.
förstaveckanpååret Valfritt. En konstant som betecknar den första veckan på året. Om argumentet utelämnas används den vecka då den 1 januari infaller.

Inställningar

Intervallargumentet 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 första_i_veckan har följande inställningar:

Konstant Värde Beskrivning
vbUseSystem 0 Använd 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änd NLS API-inställningen.
vbFirstJan1 1 Börja med den vecka då den 1 januari infaller (standard).
vbFirstFourDays 2 Börja med den första vecka där minst fyra dagar ligger i det nya året.
vbFirstFullWeek 3 Börja med årets första fullständiga vecka.

Kommentarer

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

Om du vill beräkna antalet dagar mellan datum1 och datum2 kan du använda antingen Dag på år ("y") eller Dag ("d"). När intervall är Veckodag ("w" returnerar DatumDiff antalet veckor mellan de två datumen. Om datum1 infaller på en måndag räknar DatumDiff antalet måndagar till datum2. Den räknar datum2 men inte datum1. Om intervall är Vecka ("ww"), returnerar dock funktionen DatumDiff antalet kalenderveckor mellan de två datumen. Antalet söndagar mellan datum1 och datum2 räknas. DatumDiff räknar datum2 om det infaller på en söndag. men det räknas inte datum1, även om det faller på en söndag.

Om datum1 refererar till en senare tidpunkt än datum2 returnerar funktionen DatumDiff ett negativt tal.

Argumentet första_i_veckan påverkar beräkningar som använder intervallsymbolerna "w" och "ww".

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

När 31 december jämförs med 1 januari föregående år returnerar DatumDiff för år ("yyyy") värdet 1, trots att bara en dag har förflutit.

Obs

För datum1 och datum2 måste det angivna datumet vara gregorianskt om Calendar egenskapsinställning är gregoriansk. Om kalendern är Hijri måste det datum som anges vara Hijri.

DatumDiff-frågeexempel

Uttryck Resultat
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Uttr1 FROM ProductSales; Returnerar skillnaden mellan Datum2 och Datum1 (använd Datum1 som äldsta och Datum2 som det senaste) som antal "år". Resultat: Skillnaden mellan värdena i fältet "Försäljningsdatum" och datumet "2010-01-01" som antal år.
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Returnerar skillnaden mellan systemdatumet och "DateofSale" som antal kvartal (baserat på kalenderår) och visar i kolumnen "DaysSinceSale". returnerar skillnaden mellan systemdatum och "Försäljningsdatum" som antal månader och visar i kolumnen "DaysSinceSale".
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Returnerar skillnaden mellan systemdatum och "Försäljningsdatum" som antal dagar och visar i kolumnen "DaysSinceSale".
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Returnerar skillnaden mellan systemdatum och "Försäljningsdatum" som antal dagar och visar i kolumnen "DaysSinceSale".
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Returnerar skillnaden mellan systemdatumet och "DateofSale" som antal "Vardagar" och visar i kolumnen "DaysSinceSale". Om "DateofSale" infaller på en måndag räknar DatumDiff antalet måndagar till systemdatum. Det räknar systemdatum men inte värdet i "DateofSale".
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Returnerar skillnaden mellan systemdatumet och "DateofSale" som antal "Kalenderveckor" och visar i kolumnen "DaysSinceSale". Antalet söndagar räknas mellan "DateofSale" och "systemdatum". Det kommer att räkna systemdatum om det infaller på en söndag; men det räknas inte "DateofSale", även om det faller på en söndag.
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Returnerar skillnaden mellan systemdatumet och "DateTime" som antalet timmar och visar i kolumnen "DaysSinceSale".
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Returnerar skillnaden mellan systemdatum och "DateTime" som antal Minuter och visar i kolumnen "DaysSinceSale".
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Returnerar skillnaden mellan systemdatum och "DateTime" som antal sekunder och visar i kolumnen "DaysSinceSale".

Använda funktionen DatumDiff i ett uttryck

Du kan använda funktionen DatumDiff 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 Orders har du ett fält med namnet ReceiveBefore som innehåller det datum då kunden behöver få sin order levererad. Du kan använda funktionen DatumDiff 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:

=DatumDiff("d", Nu(), [Order].[ 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 är negativ och anger hur många dagar försenad ordern blir om den levereras omedelbart.

Använda funktionen DatumDiff i VBA-kod

Det här exemplet använder funktionen DatumDiff 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älj rätt datumfunktion