DateDiff-funksjon

Gjelder for
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Returnerer en variant (Lang) som angir antall intervaller mellom to datoer.

Syntaks

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

Funksjonen DateDiff har disse argumentene:

Argument Beskrivelse
interval Obligatorisk. Strenguttrykk som er tidsintervallet du bruker til å beregne forskjellen mellom date1 og date2.
date1, date2 Obligatorisk. Variant (dato). To datoer du vil bruke i beregningen.
firstdayofweek Valgfritt. En konstant som angir første dag i uken. Hvis du ikke angir det, brukes søndag.
firstweekofyear Valgfritt. En konstant som angir første uke i året. Hvis du ikke angir det, er den første uken uken der datoen 1. januar finnes.

Innstillinger

Argumentet interval har disse innstillingene:

Innstilling Beskrivelse
yyyy År
q Kvartal
m Måned
y Dag i året
d Dag
w Weekday
ww Uke
h Time
n Minutt
s Sekund

Argumentet firstdayofweek har disse innstillingene:

Konstant Value Beskrivelse
vbUseSystem 0 Bruker NLS API-innstillingen.
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 Value Beskrivelse
vbUseSystem 0 Bruker NLS API-innstillingen.
vbFirstJan1 1 Starter med uken der 1. januar finner sted (standard).
vbFirstFourDays 2 Starter med den første uken som har minst fire dager i det nye året.
vbFirstFullWeek 3 Starter med den første hele uken i året.

Merknader

Du kan bruke funksjonen DateDiff til å bestemme hvor mange bestemte tidsintervaller som finnes mellom to datoer. Du kan for eksempel bruke DateDiff til å beregne antall dager mellom to datoer eller antallet uker mellom i dag og slutten av året.

Hvis du vil beregne antall dager mellom date1 og date2, kan du bruke enten Dag i året ("y") eller Dag ("d"). Når interval er ukedag ("w"), DateDiff returnerer ukeantallet mellom de to datoene. Hvis date1 faller på en mandag, DateDiff teller antall mandager til date2. Det teller, date2 men ikke date1. Hvis interval er Uke ("ww"), returnerer funksjonen imidlertid DateDiff antallet kalenderuker mellom de to datoene. Den teller antall søndager mellom date1 og date2. DateDiff teller date2 om den faller på en søndag, men den teller date1ikke, selv om den faller på en søndag.

Hvis date1 refererer til et senere tidspunkt enn date2, DateDiff returnerer funksjonen et negativt tall.

Argumentet firstdayofweek påvirker beregninger som bruker symbolet "w" og "ww" intervall.

Hvis date1 eller date2 er en datolitteral, blir det angitte året en permanent del av denne datoen. Hvis date1 or date2 er omsluttet av doble anførselstegn (" "), og du utelater året, settes imidlertid gjeldende år inn i koden hver gang eller-uttrykket date1date2 evalueres. Dette gjør det mulig å skrive kode som du kan bruke i ulike år.

Når du sammenligner 31. desember med 1. januar neste år, DateDiff returneres 1 for år ("yyyy"), selv om det bare har gått én dag.

Obs!

For date1 og date2, hvis egenskapsinnstillingen Calendar er gregoriansk, må den angitte datoen være gregoriansk. Hvis kalenderen er Hijri, må den angitte datoen være Hijri.

Eksempler på DateDiff-spørringer

Uttrykk Resultater
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; Returnerer differansen, i år, mellom datoen 01/01/2010 og verdiene i DateofSale feltet.
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Returnerer differansen, i kvartaler basert på kalenderåret, mellom systemdatoen og DateofSale, og viser den i DaysSinceSale kolonnen.
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Returnerer differansen, i dager, mellom systemdatoen og DateofSale, og viser den i DaysSinceSale kolonnen.
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Returnerer differansen, i dager, mellom systemdatoen og DateofSale, og viser den i DaysSinceSale kolonnen.
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Returnerer differansen, i ukedager, mellom systemdatoen og DateofSale, og viser den i DaysSinceSale kolonnen. Hvis DateofSale faller på en mandag, DateDiff teller antall mandager frem til systemdatoen. Den teller systemdatoen, men ikke verdien DateofSale .
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Returnerer differansen, i kalenderuker, mellom systemdatoen og DateofSale, og viser den i DaysSinceSale kolonnen. Den teller antall søndager mellom DateofSale og systemdatoen. Den teller systemdatoen hvis den faller på en søndag, men den teller DateofSaleikke, selv om den faller på en søndag.
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Returnerer differansen, i timer, mellom systemdatoen og DateTime, og viser den i DaysSinceSale kolonnen.
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Returnerer differansen, i minutter, mellom systemdatoen og DateTime, og viser den i DaysSinceSale kolonnen.
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Returnerer differansen, i sekunder, mellom systemdatoen og DateTime, og viser den i DaysSinceSale kolonnen.

Bruke DateDiff-funksjonen i et uttrykk

Du kan bruke funksjonen hvor som DateDiff helst der du kan bruke uttrykk. Anta for eksempel at du har et skjema du bruker til å oppfylle kundeordrer. I Ordrer-tabellen har du et navn ReceiveBefore som inneholder datoen da kunden må motta ordren. Du kan bruke funksjonen DateDiff med en tekstboks på skjemaet for å vise hvor mange dager som gjenstår før ordren må leveres.

Hvis vi forutsetter at det tar ti dager å sende en ordre, angir du Kontrollkilde-egenskapen for tekstboksen på følgende måte:

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

Når du åpner skjemaet i skjemavisning, viser tekstboksen hvor mange dager som gjenstår før ordren må sendes. Hvis det er mindre enn 10 dager igjen før kunden trenger å motta ordren, er tallet i tekstboksen negativt. Den angir hvor mange dager forsinket bestillingen vil være hvis du sender den umiddelbart.

Bruke DateDiff-funksjonen i VBA-kode

Dette eksemplet bruker DateDiff funksjonen til å vise antall dager mellom en gitt dato og dagens 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å

Velge riktig datofunksjon