Retourneert een variant (lang) 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. Tekenreeksexpressie die het tijdsinterval is dat u gebruikt om het verschil tussen date1 en date2te berekenen. |
date1, date2 |
Vereist. Variant (Datum). 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 plaatsvindt. |
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 | Maakt gebruik van 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 | Maakt gebruik van de NLS-API-instelling. |
vbFirstJan1 |
1 | Begint met de week waarin 1 januari plaatsvindt (standaard). |
vbFirstFourDays |
2 | Begint met de eerste week met ten minste vier dagen in het nieuwe jaar. |
vbFirstFullWeek |
3 | Begint met de eerste volledige week van het jaar. |
Opmerkingen
U kunt de DateDiff functie gebruiken om te bepalen hoeveel opgegeven tijdsintervallen tussen twee datums bestaan. U kunt bijvoorbeeld gebruiken DateDiff om het aantal dagen tussen twee datums of het aantal weken tussen vandaag en het einde van het jaar te berekenen.
Als u het aantal dagen tussen date1 en date2wilt berekenen, kunt u Dag van het jaar ("y") of Dag ("d") gebruiken. Wanneer interval is Weekdag ("w"), DateDiff retourneert het aantal weken tussen de twee datums. Als date1 valt op een maandag, DateDiff telt het aantal maandagen tot date2. Het telt date2 , maar niet date1. Als interval week ("ww"), retourneert de DateDiff functie echter het aantal kalenderweken tussen de twee datums. Het aantal zondagen tussen date1 en date2wordt geteld.
DateDiff
date2 telt als het op een zondag valt, maar niet telt date1, zelfs als het op een zondag valt.
Als date1 verwijst naar een later tijdstip dan date2, retourneert de DateDiff functie een negatief getal.
Het firstdayofweek argument is van invloed op berekeningen die gebruikmaken van de "w" intervalsymbolen en "ww" .
Als date1 of date2 een letterlijke datum is, wordt het opgegeven jaar een permanent onderdeel van die datum. Als date1 of date2 echter tussen dubbele aanhalingstekens (" ") staat en u het jaar weglaat, wordt het huidige jaar ingevoegd in uw code telkens wanneer de date1 expressie of date2 wordt geëvalueerd. Dit maakt het mogelijk om code te schrijven die u in verschillende jaren kunt gebruiken.
Wanneer u 31 december vergelijkt met 1 januari van het volgende jaar, DateDiff wordt voor Jaar ("yyyy") 1 geretourneerd, zelfs als er slechts één dag is 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.
DateDiff-queryvoorbeelden
| Expressie | Resultaten |
|---|---|
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; |
Retourneert 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; |
Retourneert 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; |
Retourneert 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; |
Retourneert het verschil in weekdagen tussen de systeemdatum en DateofSale, en geeft dit weer in de DaysSinceSale kolom. Als DateofSale valt op een maandag, DateDiff telt het aantal maandagen tot de systeemdatum. De systeemdatum wordt geteld, maar niet de DateofSale waarde. |
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Retourneert 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. De systeemdatum wordt geteld als deze op een zondag valt, maar telt niet DateofSalemee, zelfs niet als deze op een zondag valt. |
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Retourneert 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; |
Retourneert 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; |
Retourneert 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 u expressies kunt gebruiken. Stel dat u een formulier hebt voor het invoeren van orders van klanten. In de tabel Orders hebt u een veld met de naam ReceiveBefore dat de datum bevat waarop de klant de order moet ontvangen. U kunt de DateDiff functie met een tekstvak op het formulier gebruiken om het aantal dagen weer te geven dat nog moet worden verzonden.
Ervan uitgaande dat het tien dagen duurt om een bestelling te verzenden, stelt u de eigenschap Besturingselementbron van het tekstvak als volgt in:
=DateDiff("d", Now(), [Orders].[ReceiveBefore])-10
Wanneer u het formulier opent in de formulierweergave, wordt in het tekstvak het aantal dagen weergegeven voordat de bestelling moet worden verzonden. Als er nog minder dan tien dagen over zijn voordat de klant de bestelling moet ontvangen, is het nummer in het tekstvak negatief. Het geeft aan hoeveel dagen later de bestelling zal zijn 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