Geeft een variant (lang) als resultaat die het aantal tijdsintervallen tussen twee datums aangeeft.
Syntaxis
DateDiff(interval, date1, date2[, firstdayofweek][, firstweekofyear])
De DateDiff functie heeft deze argumenten:
| Argument | Beschrijving |
|---|---|
interval |
Vereist. Een tekenreeksexpressie die het tijdsinterval aangeeft dat u gebruikt om het verschil tussen date1 en te date2berekenen. |
date1, date2 |
Vereist. Variant (Datum). De twee datums die u in de berekening wilt gebruiken. |
firstdayofweek |
Optioneel. Een constante die de eerste dag van de week aangeeft. Als u deze niet opgeeft, wordt uitgegaan van zondag. |
firstweekofyear |
Optioneel. Een constante die de eerste week van het jaar aangeeft. Als u deze niet opgeeft, is de eerste week de week waarin 1 januari valt. |
Instellingen
Het interval argument heeft deze instellingen:
| Instelling | Omschrijving |
|---|---|
yyyy |
Jaar |
q |
Kwartaal |
m |
maand |
y |
Dag van jaar |
d |
Dag |
w |
Weekdag |
ww |
Week |
h |
Uur |
n |
Minuut |
s |
Seconde |
Het firstdayofweek argument heeft deze instellingen:
| Constante | Waarde | Beschrijving |
|---|---|---|
vbUseSystem |
0 | Gebruikt de NLS API-instelling. |
vbSunday |
1 | Zondag (standaard) |
vbMonday |
2 | Maandag |
vbTuesday |
3 | Dinsdag |
vbWednesday |
4 | Woensdag |
vbThursday |
5 | Donderdag |
vbFriday |
6 | Vrijdag |
vbSaturday |
7 | Zaterdag |
| Constante | Waarde | Beschrijving |
|---|---|---|
vbUseSystem |
0 | Gebruikt de NLS API-instelling. |
vbFirstJan1 |
1 | Begint met de week waarin 1 januari valt (standaard). |
vbFirstFourDays |
2 | Begint met de eerste week die minimaal vier dagen in het nieuwe jaar heeft. |
vbFirstFullWeek |
3 | Begint met de eerste volledige week van het jaar. |
Opmerkingen
U kunt de DateDiff functie gebruiken om te bepalen hoeveel opgegeven tijdsintervallen er bestaan tussen twee datums. U kunt deze bijvoorbeeld gebruiken DateDiff om het aantal dagen te berekenen tussen twee datums of het aantal weken tussen vandaag en het einde van het jaar.
Als u het aantal dagen tussen date1 en date2wilt berekenen, kunt u een dag van het jaar ("y") of dag ("d") gebruiken. When interval is Weekday ("w"), DateDiff geeft als resultaat het aantal weken tussen de twee datums. Als date1 op een maandag valt, DateDiff wordt het aantal maandagen tot date2en met . Het telt date2 , maar niet date1. Als interval deze is ingesteld op week ("ww"), retourneert de DateDiff functie echter het aantal kalenderweken tussen de twee datums. Het telt het aantal zondagen tussen date1 en date2.
DateDiff telt date2 als het op een zondag valt, maar het telt date1niet, zelfs als het op een zondag valt.
Als date1 naar een later tijdstip dan date2, verwijst, geeft de DateDiff functie een negatief getal als resultaat.
Het firstdayofweek argument is van invloed op berekeningen waarin de "ww""w" en-intervalsymbolen worden gebruikt.
date2 Als date1 of een datum letterlijk is, wordt het opgegeven jaar een permanent onderdeel van die datum. Als date1date2 of echter tussen dubbele aanhalingstekens (" ") staat, en u het jaar weglaat, wordt het huidige jaar ingevoegd in de code wanneer de date1 of-expressie date2 wordt geëvalueerd. Hierdoor kunt u code schrijven die u in verschillende jaren kunt gebruiken.
Als u 31 december vergelijkt met 1 januari van het volgende jaar, DateDiff geeft jaar ("yyyy") 1 als resultaat, ook al is er maar één dag verstreken.
Opmerking
Voor date1 en date2, als de instelling van de Calendar eigenschap Gregoriaans is, moet de opgegeven datum Gregoriaans zijn. Als de kalender Hijri is, moet de opgegeven datum de notatie van de Hijri kalender volgen.
Voorbeelden van DateDiff-query's
| Expressie | Resultaten |
|---|---|
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; |
Geeft als resultaat het verschil in jaren tussen de datum 01/01/2010 en de waarden in het DateofSale veld. |
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Retourneert het verschil, in kwartalen op basis van het kalenderjaar, tussen de systeemdatum en DateofSale, en geeft dit weer in de DaysSinceSale kolom. |
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Geeft als resultaat het verschil in dagen tussen de systeemdatum en DateofSale, en geeft dit weer in de DaysSinceSale kolom. |
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Geeft als resultaat het verschil in dagen tussen de systeemdatum en DateofSale, en geeft dit weer in de DaysSinceSale kolom. |
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Geeft als resultaat het verschil, in weekdagen, tussen de systeemdatum en DateofSale, en geeft dit weer in de DaysSinceSale kolom. Als DateofSale op een maandag valt, DateDiff wordt het aantal maandagen tot de systeemdatum geteld. De systeemdatum wordt geteld, maar niet de DateofSale waarde. |
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Geeft als resultaat het verschil, in kalenderweken, tussen de systeemdatum en DateofSale, en geeft dit weer in de DaysSinceSale kolom. Het aantal zondagen tussen DateofSale en de systeemdatum wordt geteld. Het telt de systeemdatum als deze op een zondag valt, maar het telt DateofSaleniet mee, zelfs als het op een zondag valt. |
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Geeft als resultaat het verschil in uren tussen de systeemdatum en DateTime, en geeft dit weer in de DaysSinceSale kolom. |
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Geeft als resultaat het verschil in minuten tussen de systeemdatum en DateTime, en geeft dit weer in de DaysSinceSale kolom. |
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Geeft als resultaat het verschil in seconden tussen de systeemdatum en DateTime, en geeft dit weer in de DaysSinceSale kolom. |
De functie DateDiff gebruiken in een expressie
U kunt de DateDiff functie overal gebruiken waar expressies zijn toegestaan. Stel dat u een formulier hebt voor het invoeren van orders van klanten. De tabel Orders bevat de ReceiveBefore datum waarop de order uiterlijk moet zijn bezorgd bij de klant. U kunt de DateDiff functie gebruiken met een tekstvak op het formulier om het aantal dagen weer te geven voordat de order moet worden verzonden.
Stel dat het gemiddeld tien dagen duurt om een order uit te leveren. Stel de eigenschap Besturingselementbron van het tekstvak als volgt in:
=DateDiff("d", Now(), [Orders].[ReceiveBefore])-10
Wanneer u het formulier opent in de formulierweergave, bevat het tekstvak het aantal dagen dat nog resteert om de order te verzenden. Als er minder dan tien dagen resteren voordat de klant de order moet ontvangen, is de waarde in het tekstvak negatief. Deze geeft aan hoeveel dagen de bestelling te laat wordt uitgevoerd als u deze onmiddellijk verzendt.
De functie DateDiff gebruiken in VBA-code
In dit voorbeeld wordt de DateDiff functie gebruikt om het aantal dagen tussen een bepaalde datum en vandaag weer te geven.
Dim TheDate As Date ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg