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