Funktionen DateDiff

Gælder for
Access til Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Returnerer en variant (lang), der angiver antallet af tidsintervaller mellem to datoer.

Syntaks

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

Funktionen DateDiff har disse argumenter:

Argument Beskrivelse
interval Påkrævet. Strengudtryk, der er det tidsinterval, du bruger til at beregne forskellen mellem date1 og date2.
date1, date2 Påkrævet. Variant (dato). To datoer, du vil bruge i beregningen.
firstdayofweek Valgfrit. En konstant, der angiver den første dag i ugen. Hvis du ikke angiver det, antages det at være søndag.
firstweekofyear Valgfrit. En konstant, der angiver den første uge i året. Hvis du ikke angiver den, er den første uge den uge, hvor den 1. januar forekommer.

Indstillinger

Argumentet interval har disse indstillinger:

Indstilling Beskrivelse
yyyy År
q Kvartal
m Måned
y Dag i året
d Dag
w Ugedag
ww Uge
h Time
n Minut
s Sekund

Argumentet firstdayofweek har disse indstillinger:

Konstant Værdi Beskrivelse
vbUseSystem 0 Bruger indstillingen NLS API.
vbSunday 1 Søndag (standard)
vbMonday 2 Mandag
vbTuesday 3 Tirsdag
vbWednesday 4 Onsdag
vbThursday 5 Torsdag
vbFriday 6 Fredag
vbSaturday 7 Lørdag
Konstant Værdi Beskrivelse
vbUseSystem 0 Bruger indstillingen NLS API.
vbFirstJan1 1 Starter med den uge, hvor den 1. januar forekommer (standard).
vbFirstFourDays 2 Starter med den første uge, der har mindst fire dage i det nye år.
vbFirstFullWeek 3 Starter med den første hele uge i året.

Bemærkninger

Du kan bruge funktionen DateDiff til at bestemme, hvor mange angivne tidsintervaller der findes mellem to datoer. Du kan f.eks. bruge DateDiff til at beregne antallet af dage mellem to datoer eller antallet af uger mellem i dag og slutningen af året.

Hvis du vil beregne antallet af dage mellem date1 og date2, kan du bruge enten Dag i året ("y") eller Dag ("d"). Hvornår interval er Ugedag ("w"), DateDiff returnerer antallet af uger mellem de to datoer. Hvis date1 falder på en mandag, DateDiff tælles antallet af mandage indtil date2. Det tæller, date2 men ikke date1. Hvis interval er Uge ("ww"), returnerer funktionen DateDiff dog antallet af kalenderuger mellem de to datoer. Det tæller antallet af søndage mellem date1 og date2. DateDiff tæller date2 , hvis den falder på en søndag, men den tæller date1ikke , også selvom den falder på en søndag.

Hvis date1 refererer til et senere tidspunkt end date2, DateDiff returnerer funktionen et negativt tal.

Argumentet firstdayofweek påvirker beregninger, der bruger intervalsymbolerne "w" og "ww" .

Hvis date1 eller date2 er en datokonstant, bliver det angivne år en permanent del af denne dato. Men hvis date1 eller date2 er omsluttet af dobbelte anførselstegn (" "), og du udelader året, indsættes det aktuelle år i din kode, hver gang udtrykket date1 eller date2 evalueres. Dette gør det muligt at skrive kode, som du kan bruge i forskellige år.

Når du sammenligner 31. december med 1. januar i det næste år, returnerer år ("yyyy") 1, DateDiff selvom der kun er gået én dag.

Bemærk

For date1 og date2, hvis egenskabsindstillingen Calendar er gregoriansk, skal den angivne dato være gregoriansk. Hvis kalenderen er hijri, skal den angivne dato være hijri.

Eksempler på DateDiff-forespørgsel

Udtryk Resultater
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; Returnerer forskellen i år mellem datoen 01/01/2010 og værdierne i feltet DateofSale .
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Returnerer forskellen i kvartaler baseret på kalenderåret mellem systemdatoen og DateofSaleog viser den i DaysSinceSale kolonnen.
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Returnerer forskellen i dage mellem systemdatoen og DateofSaleog viser den i DaysSinceSale kolonnen.
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Returnerer forskellen i dage mellem systemdatoen og DateofSaleog viser den i DaysSinceSale kolonnen.
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Returnerer forskellen i hverdage mellem systemdatoen og DateofSaleog viser den i DaysSinceSale kolonnen. Hvis DateofSale falder på en mandag, DateDiff tælles antallet af mandage indtil systemdatoen. Den tæller systemdatoen, men ikke værdien DateofSale .
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Returnerer forskellen i kalenderuger mellem systemdatoen og og DateofSaleviser den i DaysSinceSale kolonnen. Den tæller antallet af søndage mellem DateofSale og systemdatoen. Den tæller systemdatoen, hvis den falder på en søndag, men den tæller DateofSaleikke , også selvom den falder på en søndag.
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Returnerer forskellen i timer mellem systemdatoen og DateTimeog viser den i DaysSinceSale kolonnen.
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Returnerer forskellen i minutter mellem systemdatoen og DateTimeog viser den i DaysSinceSale kolonnen.
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Returnerer forskellen i sekunder mellem systemdatoen og DateTimeog viser den i DaysSinceSale kolonnen.

Brug funktionen DateDiff i et udtryk

Du kan bruge funktionen DateDiff overalt, hvor du kan bruge udtryk. Lad os antage, at du har en formular, som du bruger til at indfri kundeordrer. I tabellen Ordrer har du et felt med navnet ReceiveBefore , der indeholder den dato, hvor kunden skal modtage ordren. Du kan bruge funktionen DateDiff sammen med et tekstfelt i formen for at få vist det antal dage, der er tilbage, før ordren skal afsendes.

Hvis det tager ti dage at sende en ordre, skal du angive egenskaben Kontrolelementkilde for tekstfeltet på følgende måde:

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

Når du åbner formularen i formularvisning, viser tekstfeltet det antal dage, der er tilbage, før ordren skal afsendes. Hvis der er mindre end 10 dage tilbage, før kunden skal modtage ordren, er tallet i tekstfeltet negativt. Den angiver, hvor mange dage ordren kommer for sent, hvis du sender den med det samme.

Brug funktionen DateDiff i VBA-kode

I dette eksempel bruges funktionen DateDiff til at vise antallet af dage mellem en given dato og dags dato.

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

Se Også

Vælg den rigtige datofunktion