Applies ToAccess 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örstadageniveckan] [, förstaveckanpååret] )

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

Argument

Beskrivning

intervall

Obligatoriskt. Ett stränguttryck som representerar 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 betecknar 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

Argumentet intervallargument har dessa 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örstaveckanpååret 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 dagen på året ("y") eller dag ("d"). När intervall är "w" (veckodag), returnerar DatumDiff antalet veckor mellan de två datumen. Om datum1 infaller på en måndag räknas DatumDiff antalet måndagar till datum2. Funktionen räknar datum2, men inte datum1. Om intervall är vecka ("ww"), returnerar dock funktionen DatumDiff antalet kalenderveckor mellan de två datumen. Funktionen räknar antalet söndagar mellan datum1 och datum2. DatumDiff räknar datum2 om det infaller på en söndag, men inte datum1, även om det infaller på en söndag.

Om datum1 refererar till ett senare tillfälle än datum2, returnerar funktionen DatumDiff ett negativt tal.

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

Om datum1 eller datum2 är en datumformat blir det angivna året en permanent del av datumet. Men om datum1 eller datum2 omges av dubbla citattecken (" "), och du utelämnar året, infogas aktuellt år 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 gäller att om egenskapsinställningen Kalender är gregoriansk, måste datumet vara gregorianskt. 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".

Uttrycksexempel

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

VBA-exempel

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 MsgTheDate = InputBox("Enter a date")Msg = "Days from today: " & DateDiff("d", Now, TheDate)MsgBox Msg

Se även

Välj rätt datumfunktion

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.