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, som 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 det, er den første uge den uge, hvor 1. januar forekommer. |
Indstillinger
Argumentet interval har følgende 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 følgende 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 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 DateDiff funktionen 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 dags dato og årets slutning.
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æller antallet af mandage indtil date2. Det tæller, date2 men ikke date1. Hvis interval er Uge ("ww"), returnerer DateDiff funktionen derimod antallet af kalenderuger mellem de to datoer. Den 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, selvom den falder på en søndag.
Hvis date1 refererer til et senere tidspunkt end date2, returnerer DateDiff funktionen et negativt tal.
Argumentet firstdayofweek påvirker beregninger, der anvender symbolet "w" og "ww" interval.
Hvis date1 eller date2 er en datokonstant, bliver det angivne år en permanent del af den pågældende 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 eller-udtrykket date1date2 evalueres. Det gør det muligt at skrive kode, som du kan bruge i forskellige år.
Når du sammenligner 31. december med 1. januar næste år, DateDiff returneres 1 for År ("yyyy"), selvom der kun er gået én dag.
Bemærk
For date1 og date2, hvis egenskaben 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ørgsler
| 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 DateofSale feltet. |
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer forskellen i kvartaler baseret på kalenderåret mellem systemdatoen og DateofSale, og viser den i DaysSinceSale kolonnen. |
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer forskellen i dage mellem systemdatoen og DateofSale, og viser den i DaysSinceSale kolonnen. |
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer forskellen i dage mellem systemdatoen og DateofSale, og viser den i DaysSinceSale kolonnen. |
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer forskellen i ugedage mellem systemdatoen og DateofSale, og 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 DateofSale, og viser den i DaysSinceSale kolonnen. Det 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, selvom den falder på en søndag. |
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer forskellen i timer mellem systemdatoen og DateTime, og viser den i DaysSinceSale kolonnen. |
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer forskellen i minutter mellem systemdatoen og DateTime, og viser den i DaysSinceSale kolonnen. |
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer forskellen i sekunder mellem systemdatoen og DateTime, og viser den i DaysSinceSale kolonnen. |
Brug af funktionen DateDiff i et udtryk
Du kan bruge DateDiff funktionen alle de steder, 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 feltnavn ReceiveBefore , der indeholder den dato, hvor kunden skal modtage ordren. Du kan bruge DateDiff funktionen med et tekstfelt i formularen til at vise antallet af dage, der er tilbage, før ordren skal afsendes.
Hvis det tager 10 dage at levere 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 antallet af 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 tekstboksen negativt. Den angiver, hvor mange dage ordren kommer for sent, hvis du sender den straks.
Brug funktionen DateDiff i VBA-kode
I dette eksempel bruges DateDiff funktionen 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