Returnează o variantă (lungă) care specifică numărul de intervaluri de timp dintre două date.
Sintaxă
DateDiff(interval, date1, date2[, firstdayofweek][, firstweekofyear])
Funcția DateDiff are următoarele argumente:
| Argument | Descriere |
|---|---|
interval |
Obligatoriu. Expresie șir care reprezintă intervalul de timp pe care îl utilizați pentru a calcula diferența dintre date1 și date2. |
date1, date2 |
Obligatoriu. Variant (Date). Două date pe care doriți să le utilizați în calcul. |
firstdayofweek |
Opțional. O constantă care specifică prima zi a săptămânii. Dacă nu o specificați, se presupune că este duminică. |
firstweekofyear |
Opțional. Este o constantă care specifică prima săptămână a anului. Dacă nu o specificați, prima săptămână este săptămâna în care pică 1 ianuarie. |
Setări
Argumentul interval are aceste setări:
| Setare | Descriere |
|---|---|
yyyy |
An |
q |
Trimestru |
m |
Lună |
y |
Zi din an |
d |
Zi |
w |
Weekday |
ww |
Săptămână |
h |
Oră |
n |
Minut |
s |
A doua |
Argumentul firstdayofweek are aceste setări:
| Constantă | Value | Descriere |
|---|---|---|
vbUseSystem |
0 | Utilizează setarea API NLS. |
vbSunday |
1 | Duminică (implicit) |
vbMonday |
2 | Luni |
vbTuesday |
3 | Marți |
vbWednesday |
4 | Miercuri |
vbThursday |
5 | Joi |
vbFriday |
6 | Vineri |
vbSaturday |
7 | Sâmbătă |
| Constantă | Value | Descriere |
|---|---|---|
vbUseSystem |
0 | Utilizează setarea API NLS. |
vbFirstJan1 |
1 | Începe cu săptămâna în care pică 1 ianuarie (implicit). |
vbFirstFourDays |
2 | Începe cu prima săptămână care are cel puțin patru zile din noul an. |
vbFirstFullWeek |
3 | Începe cu prima săptămână completă a anului. |
Observații
Puteți utiliza funcția DateDiff pentru a determina câte intervaluri de timp specificate există între două date. De exemplu, puteți utiliza DateDiff pentru a calcula numărul de zile dintre două date sau numărul de săptămâni dintre ziua de astăzi și sfârșitul anului.
Pentru a calcula numărul de zile dintre date1 și date2, puteți utiliza Ziua din an ("y"), sau Ziua ("d"). Când interval este Weekday ("w"), DateDiff returnează numărul de săptămâni dintre cele două date. Dacă date1 cade într-o zi de luni, DateDiff contorizează numărul de zile de luni până la date2. Contează date2 , dar nu date1. Însă, dacă interval este Săptămână ("ww"), funcția returnează numărul de săptămâni calendaristice DateDiff dintre cele două date. Ea contorizează numărul de duminici dintre date1 și date2.
DateDiff contorizează date2 dacă cade duminică, dar nu contează date1, chiar dacă cade duminică.
Dacă date1 se referă la un moment ulterior raportului de date2, funcția DateDiff returnează un număr negativ.
Argumentul firstdayofweek afectează calculele care utilizează simbolurile "w" de interval and "ww" .
Dacă date1 sau date2 este un literal de dată, anul specificat devine o parte permanentă a acelei date. Cu toate acestea, dacă date1 or date2 este încadrat în ghilimele duble (" ") și omiteți anul, anul curent este inserat în cod de fiecare dată când date1 se evaluează expresia sau date2 . Acest lucru face posibilă scrierea unui cod pe care îl puteți utiliza în ani diferiți.
Când comparați perioada 31 decembrie cu data de 1 ianuarie a anului următor, DateDiff pentru anul ("yyyy") returnează 1, chiar dacă a trecut o singură zi.
Notă
Pentru date1 și date2, dacă setarea proprietății Calendar este gregoriană, data furnizată trebuie să fie gregoriană. Dacă calendarul este Hijri, data furnizată trebuie să fie Hijri.
Exemple de interogare DateDiff
| expresie | Rezultatele |
|---|---|
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; |
Întoarce diferența în ani dintre dată 01/01/2010 și valorile din DateofSale câmp. |
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnează diferența, în trimestre bazate pe anul calendaristic, dintre data de sistem și DateofSale, și o afișează în DaysSinceSale coloană. |
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnează diferența, în zile, dintre data de sistem și DateofSale, și o afișează în DaysSinceSale coloană. |
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnează diferența, în zile, dintre data de sistem și DateofSale, și o afișează în DaysSinceSale coloană. |
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnează diferența în zile lucrătoare dintre data de sistem și DateofSale, și o afișează în DaysSinceSale coloană. Dacă DateofSale cade într-o zi de luni, DateDiff contorizează numărul de zile de luni până la data de sistem. Contorizează data sistemului, dar nu și DateofSale valoarea. |
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnează diferența, în săptămâni calendaristice, dintre data de sistem și DateofSale, și o afișează în DaysSinceSale coloană. Contorizează numărul de duminici dintre DateofSale data sistemului și data sistemului. Contorizează data sistemului dacă cade într-o duminică, dar nu se contorizează DateofSale, chiar dacă cade într-o duminică. |
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Returnează diferența în ore dintre data de sistem și DateTime, și o afișează în DaysSinceSale coloană. |
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Returnează diferența, în minute, dintre data de sistem și DateTime, și o afișează în DaysSinceSale coloană. |
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Returnează diferența, în secunde, dintre data sistemului și DateTime, și o afișează în DaysSinceSale coloană. |
Utilizarea funcției DateDiff într-o expresie
Puteți utiliza funcția oriunde DateDiff puteți utiliza expresii. De exemplu, să presupunem că aveți un formular pe care îl utilizați pentru a onora comenzile clienților. În tabelul Comenzi, aveți un câmp denumit ReceiveBefore care conține data până la care clientul trebuie să primească comanda. Puteți utiliza DateDiff funcția cu o casetă text de pe formular pentru a afișa numărul de zile rămas înainte ca comanda să fie expediată.
Presupunând că durează zece zile pentru a livra orice comandă, setați proprietatea Sursă control a casetei text după cum urmează:
=DateDiff("d", Now(), [Orders].[ReceiveBefore])-10
Atunci când deschideți formularul în Vizualizare formular, caseta text afișează numărul de zile rămas înainte ca comanda să fie expediată. Dacă au mai rămas mai puțin de 10 zile înainte ca clientul să primească comanda, numărul din caseta text este negativ. Arată câte zile va întârzia comanda dacă o livrați imediat.
Utilizarea funcției DateDiff în codul VBA
Acest exemplu utilizează DateDiff funcția pentru a afișa numărul de zile dintre o dată dată specificată și ziua de astăzi.
Dim TheDate As Date ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg