Returnează o valoare variant (lungă) specificând numărul de intervaluri de timp dintre două date specificate.
Sintaxă
DateDiff ( interval, dată1, dată2 [, primazidinsămână] [, primasămânădinan] )
Sintaxa funcției DateDiff are următoarele argumente:
Argument |
Descriere |
---|---|
interval |
Obligatoriu. Expresie șir care este intervalul de timp utilizat pentru a calcula diferența dintre dată1 și dată2. |
data1, data2 |
Obligatoriu. Variant (Dată). Două date pe care doriți să le utilizați în calcul. |
primazidinsămână |
Opțional. Un constantă care specifică prima zi a săptămânii. Dacă nu se specifică, duminică se presupune. |
primasămânădinan |
Opțional. O constantă care specifică prima săptămână a anului. Dacă nu se specifică, prima săptămână se consideră a fi săptămâna în care are loc 1 ianuarie. |
Setări
Intervalul argument are aceste setări:
Setare |
Descriere |
---|---|
yyyy |
An |
q |
Trimestru |
m |
Lună |
y |
Ziua din an |
d |
Zi |
w |
Weekday |
ww |
Săptămână |
h |
Oră |
n |
Minut |
s |
Secundă |
Argumentul firstdayofweek are aceste setări:
Constantă |
Valoare |
Descriere |
---|---|---|
vbUseSystem |
0 |
Utilizați setarea NLS API. |
vbSunday |
1 |
Duminică (implicit) |
vbMonday |
2 |
Luni |
zi vbTuesday |
3 |
Marți |
zi vbWednesday |
4 |
Miercuri |
zi vbThursday |
5 |
Joi |
vbFriday |
6 |
Vineri |
vbSaturday |
7 |
Sâmbătă |
Constantă |
Valoare |
Descriere |
---|---|---|
vbUseSystem |
0 |
Utilizați setarea NLS API. |
vbFirstJan1 |
1 |
Începeți cu săptămâna în care are loc 1 ianuarie (implicit). |
vbFirstFourDays |
2 |
Începeți cu prima săptămână care are cel puțin patru zile în noul an. |
vbFirstFullWeek |
3 |
Începeți cu prima săptămână completă a anului. |
Observații
Puteți utiliza funcția DateDiff pentru a determina câte intervale de timp specificate există între două date calendaristice. 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 dată1 și dată2, puteți utiliza fie Ziua anului ("y") sau Ziua ("d"). Când intervalul este zi lucrătoare ("w"), DateDiff returnează numărul de săptămâni dintre cele două date calendaristice. Dacă data1 cade într-o zi de luni, DateDiff contorizează numărul de luni până la data2. Contorizează data2 , dar nu data1. Dacă interval este Săptămâna ("ww"), însă, funcția DateDiff returnează numărul de săptămâni calendaristice dintre cele două date calendaristice. Contorizează numărul de duminici între dată1 și dată2. DateDiff contorizează data2 dacă cade într-o duminică; dar nu contorizează data1, chiar dacă cade într-o duminică.
Dacă date1 se referă la un punct ulterior din oră decât data2, funcția DateDiff returnează un număr negativ.
Argumentul prima zi a săptămânii afectează calculele care utilizează simbolurile de interval "w" și "ww".
Dacă dată1 sau dată2 este o literal de tip dată, anul specificat devine o parte permanentă a acelei date. Cu toate acestea, dacă data1 sau data2 sunt încadrate între ghilimele duble (" ") și omiteți anul, anul curent este inserat în cod de fiecare dată când se evaluează expresia dată1 sau dată2 . Acest lucru face posibilă scrierea de cod care poate fi utilizat în ani diferiți.
Când comparați data de 31 decembrie cu 1 ianuarie a anului imediat următor, DateDiff pentru an ("yyyy") returnează 1, chiar dacă a trecut doar o zi.
Notă: Pentru data1 și data2, dacă setarea proprietății Calendar este gregorian, data furnizată trebuie să fie gregoriană. Dacă calendarul este Hijri, data furnizată trebuie să fie Hijri.
DateDiff Query examples
Expresie |
Rezultatele |
---|---|
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; |
Returnează diferența dintre Dată2 și Dată1 (considerați Data1 ca fiind cea mai veche și Data2 ca fiind cea mai nouă) ca număr de 'Ani'. Rezultat: Diferența dintre valorile din câmpul "DateofSale" și data "01.01.2010" ca număr de "Ani". |
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnează diferența dintre data de sistem și "DateofSale" ca număr de "Trimestre" (pe baza anului calendaristic) și se afișează în coloana "DaysSinceSale". returnează diferența dintre data de sistem și "DateofSale" ca număr de "Luni" și se afișează în coloana "DaysSinceSale". |
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnează diferența dintre data de sistem și "DateofSale" ca număr de "Zile" și se afișează în coloana "DaysSinceSale". |
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnează diferența dintre data de sistem și "DateofSale" ca număr de "Zile" și se afișează în coloana "DaysSinceSale". |
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnează diferența dintre data de sistem și "DateofSale" ca număr de "zile din săptămână" și se afișează în coloana "DaysSinceSale". Dacă "DateofSale" cade într-o zi de luni, DateDiff contorizează numărul de luni până la data sistemului. Contorizează data sistemului, dar nu și valoarea din "DateofSale". |
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnează diferența dintre data de sistem și "DateofSale" ca număr de "Săptămâni calendar" și se afișează în coloana "DaysSinceSale". Contorizează numărul de duminici între "DateofSale" și "dată sistem". Va contoriza data sistemului dacă cade într-o duminică; dar nu se pune pe "DateofSale", chiar dacă cade într-o duminică. |
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Returnează diferența dintre data de sistem și "DateTime" ca număr de "Ore" și se afișează în coloana "ZileSinceSale". |
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Returnează diferența dintre data de sistem și "DateTime" ca număr de "Minute" și se afișează în coloana "ZileSinceSale". |
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Returnează diferența dintre data de sistem și "DateTime" ca număr de "secunde" și se afișează în coloana "DaysSinceSale". |
Exemplu de expresie
Utilizarea funcției DateDiff într-o expresie Puteți utiliza funcția DateDiff oriunde puteți utiliza expresii. De exemplu, să presupunem că aveți un formular pe care îl utilizați pentru a îndeplini 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 funcția DateDiff cu o casetă text în formular pentru a afișa numărul de zile rămas înainte de livrarea comenzii.
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(), [Comenzi].[ ReceiveBefore])-10
Când deschideți formularul în Vizualizarea formular, caseta text afișează numărul de zile rămas înainte de livrarea comenzii. Dacă mai sunt mai puțin de 10 zile până când clientul trebuie să primească comanda, numărul din caseta text este negativ și indică numărul de zile de întârziere a comenzii dacă este expediată imediat.
Exemplu VBA
Utilizarea funcției DateDiff în cod VBA
Acest exemplu utilizează funcția DateDiff pentru a afișa numărul de zile dintre o dată dată ș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