Returnerer en variant (lang) som angir antall tidsintervaller 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 den, brukes søndag. |
firstweekofyear |
Valgfritt. En konstant som angir den første uken i året. Hvis du ikke angir den, er den første uken uken der 1. januar forekommer. |
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 forekommer (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 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 date1 og date2, kan du bruke enten dag ("y") eller dag ("d"). Når interval er Ukedag ("w"), DateDiff returneres antall uker 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 antall kalenderuker mellom de to datoene. Det teller antall søndager mellom date1 og date2.
DateDiff
date2 teller 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 "w" og "ww" intervallsymboler.
Hvis date1 eller date2 er en datolitteral, blir det angitte året en permanent del av denne datoen. Hvis eller date2 er omsluttet av doble anførselstegn (" "), og du utelater året, settes imidlertid gjeldende år inn i koden hver gang date1 uttrykket evalueresdate2.date1 Dette gjør det mulig å skrive kode som du kan bruke i forskjellige år.
Når du sammenligner 31 desember til 1 januar i neste år, DateDiff for år ("yyyy") returnerer 1 selv om bare én dag har gått.
Obs!
For date1 og date2, hvis Calendar egenskapsinnstillingen 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
| 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 feltet DateofSale . |
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer differansen, i kvartaler basert på kalenderåret, mellom systemdatoen og DateofSale, og viser den DaysSinceSale i kolonnen. |
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer differansen, i dager, mellom systemdatoen og DateofSale, og viser den DaysSinceSale i kolonnen. |
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer differansen, i dager, mellom systemdatoen og DateofSale, og viser den DaysSinceSale i kolonnen. |
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer differansen, i ukedager, mellom systemdatoen og DateofSale, og viser den DaysSinceSale i kolonnen. Hvis DateofSale den faller på en mandag, DateDiff teller antallet mandager frem til systemdatoen. Den teller systemdatoen, men ikke DateofSale verdien. |
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer differansen, i kalenderuker, mellom systemdatoen og DateofSale, og viser den DaysSinceSale i 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 DaysSinceSale i kolonnen. |
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer differansen, i minutter, mellom systemdatoen og DateTime, og viser den DaysSinceSale i kolonnen. |
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer differansen, i sekunder, mellom systemdatoen og DateTime, og viser den DaysSinceSale i kolonnen. |
Bruke DateDiff-funksjonen i et uttrykk
Du kan bruke DateDiff funksjonen hvor som helst 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 med navnet ReceiveBefore som inneholder datoen kunden trenger for å motta ordren. Du kan bruke DateDiff funksjonen med en tekstboks i skjemaet til å vise antall dager igjen 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. Den angir hvor mange dager for sent 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 i dag.
Dim TheDate As Date ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg