Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Returnerer en variant (langt) som angir antallet intervaller mellom to angitte datoer.

Syntaks

DateDiff ( intervall; dato1; dato2 [, første dag i uken] [, første uke i året] )

Syntaksen for funksjonen DateDiff har følgende argumenter:

Argument

Beskrivelse

intervall

Obligatorisk. Strenguttrykk som er tidsintervallet du bruker til å beregne forskjellen mellom dato1 og dato2.

dato 1, dato2

Obligatorisk. Variant (dato). To datoer som skal brukes i beregningen.

første dag i uken

Valgfritt. En konstant som angir første dag i uken. Hvis den ikke er angitt, brukes søndag.

første uke i året

Valgfritt. En konstant som angir den første uken i året. Hvis den ikke er angitt, antas den første uken å være uken der 1. januar forekommer.

Innstillinger

Intervallet argument har disse innstillingene:

Innstilling

Beskrivelse

åååå

År

q

Kvartal

m

Måned

y

Dag i året

d

Dag

w

Weekday

ww

Uke

t

Time

n

Minutt

s

Sekund

Argumentet første dag i uken har disse innstillingene:

Konstant

Value

Beskrivelse

vbUseSystem

0

Bruk 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

Bruk NLS API-innstillingen.

vbFirstJan1

1

Start med uken der 1. januar forekommer (standard).

vbFirstFourDays

2

Start med den første uken som har minst fire dager i det nye året.

vbFirstFullWeek

3

Start med første hele uke i året.

Merknader

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

Hvis du vil beregne antall dager mellom dato1 og dato2, kan du bruke enten dag i året («y») eller dag («d»). Når intervallet er Ukedag ("w"), returnerer DateDiff antall uker mellom de to datoene. Hvis dato1 faller på en mandag, teller DateDiff antallet mandager til dato2. Den teller dato2 , men ikke dato1. Hvis intervallet er Uke ("ww"), returnerer imidlertid DateDiff-funksjonen antall kalenderuker mellom de to datoene. Den teller antall søndager mellom dato 1 og dato2. DateDiff teller dato2 hvis den faller på en søndag. men den teller ikke dato1, selv om den faller på en søndag.

Hvis dato1 refererer til et senere tidspunkt enn dato2, returnerer DateDiff-funksjonen et negativt tall.

Argumentet firstdayofweek påvirker beregninger som bruker intervallsymbolene «w» og «ww».

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

Når du sammenligner 31. desember til 1. januar i det umiddelbart etterfølgende året, returnerer DateDiff for Year ("yyyy") 1, selv om bare en dag har gått.

Obs!:  Hvis innstillingen for kalenderegenskapen for dato1 og dato2 er gregoriansk, må den angitte datoen være gregoriansk. Hvis kalenderen er Hijri, må den angitte datoen være Hijri.

Eksempler på DateDiff-spørring

Expression

Resultater

SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales;

Returnerer differansen mellom Date2 og Date1 (vurder Dato1 som eldste og Dato2 som nyeste) som antall år. Resultat: Forskjellen mellom verdiene i feltet «DateofSale» og datoen «01.01.2010» som antallet år.

SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Returnerer differansen mellom systemdatoen og "DateofSale" som antall kvartaler (basert på kalenderår) og vises i kolonnen "DaysSinceSale". returnerer differansen mellom systemdatoen og DateofSale som antall måneder og vises i kolonnen DaysSinceSale.

SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Returnerer differansen mellom systemdatoen og DateofSale som antall dager og vises i kolonnen DaysSinceSale.

SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Returnerer differansen mellom systemdatoen og DateofSale som antall dager og vises i kolonnen DaysSinceSale.

SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Returnerer differansen mellom systemdatoen og DateofSale som antall ukedager og vises i kolonnen DaysSinceSale. Hvis «DateofSale» faller på en mandag, teller DateDiff antallet mandager frem til systemdato. Den teller systemdato, men ikke verdien i DateofSale.

SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Returnerer differansen mellom systemdatoen og DateofSale som antall kalenderuker og vises i kolonnen DaysSinceSale. Den teller antall søndager mellom «DateofSale» og «systemdato». Den teller systemdatoen hvis den faller på en søndag. men det teller ikke «DateofSale», selv om det faller på en søndag.

SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales;

Returnerer differansen mellom systemdatoen og DateTime som antall timer og vises i kolonnen DaysSinceSale.

SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales;

Returnerer differansen mellom systemdatoen og DateTime som antall minutter og vises i kolonnen DaysSinceSale.

SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales;

Returnerer differansen mellom systemdatoen og DateTime som antall sekunder og vises i kolonnen DaysSinceSale.

Eksempel på uttrykk

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

Forutsatt at det tar ti dager å sende en ordre, angir du kontrollkildeegenskapen for tekstboksen som følger:

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

Når du åpner skjemaet i skjemavisning, viser tekstboksen antall dager igjen før ordren må sendes. Hvis det er mindre enn 10 dager igjen før kunden må motta bestillingen, er tallet i tekstboksen negativt og angir hvor mange dager for sent bestillingen blir hvis den sendes umiddelbart.

VBA-eksempel

Bruke DateDiff-funksjonen i VBA-kode    

Dette eksemplet bruker DateDiff-funksjonen til å vise antall dager mellom en gitt dato og i dag.

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

Se også

Velge riktig datofunksjon

Trenger du mer hjelp?

Vil du ha flere alternativer?

Utforsk abonnementsfordeler, bla gjennom opplæringskurs, finn ut hvordan du sikrer enheten og mer.

Fellesskap hjelper deg med å stille og svare på spørsmål, gi tilbakemelding og høre fra eksperter med stor kunnskap.