Daje tip podataka Varijanta (Dugački) koji navodi broj vremenskih intervala između dva navedena datuma.
Sintaksa
DateDiff ( interval, datum1, datum2 [, prvidanusedmici] [, prvasedmicaugodini] )
Sintaksa funkcije DateDiff ima sledeće argumente:
Argument |
Opis |
---|---|
interval |
Obavezno. Izraz niske koji predstavlja interval vremena koji koristite za izračunavanje razlike između datuma1 i datuma2. |
datum1, datum2 |
Obavezno. Varijanta (datum). Dva datuma koja želite da koristite u izračunavanju. |
prvi dan sedmice |
Opcionalno. Tabela konstanta koja navodi prvi dan u sedmici. Ako nije navedeno, pretpostavlja se da je nedelja. |
prvasedmica godine |
Opcionalno. Konstanta koja navodi prvu sedmicu u godini. Ako nije navedeno, pretpostavlja se da je prva sedmica sedmica u kojoj se javlja 1. januar. |
Postavke
Interval uargument ima sledeće postavke:
Postavka |
Opis |
---|---|
yyyy |
Godina |
q |
Kvartal |
m |
Mesec |
y |
Dan u godini |
d |
Dan |
w |
Weekday |
ww |
Sedmica |
h |
Čas |
n |
Minut |
s |
Sekunda |
Argument prvog dana sedmice ima sledeće postavke:
Konstanta |
Vrednost |
Opis |
---|---|---|
vbUseSystem |
0 |
Koristite postavku NLS API- ja. |
vbSunday |
1 |
Nedelja (podrazumevano) |
vbMonday |
2 |
ponedeljak |
vbTuesday |
3 |
Utorak |
vbWednesday |
4 |
sreda |
vbThursday |
5 |
četvrtak |
vbFriday |
6 |
petak |
vbSaturday |
7 |
subota |
Konstanta |
Vrednost |
Opis |
---|---|---|
vbUseSystem |
0 |
Koristite postavku NLS API- ja. |
vbFirstJan1 |
1 |
Počnite sa sedmicom u kojoj se desio 1. januar (podrazumevano). |
vbFirstFourDays |
2 |
Počnite od prve sedmice koja ima najmanje četiri dana u novoj godini. |
vbFirstFullWeek |
3 |
Počnite sa prvom punom sedmicom u godini. |
Napomene
Možete da koristite funkciju DateDiff da biste odredili koliko navedenih vremenskih intervala postoji između dva datuma. Na primer, možete da koristite DateDiff da biste izračunali broj dana između dva datuma ili broj sedmica između današnjeg i kraja godine.
Da biste izračunali broj dana između datuma1 i datuma2, možete da koristite bilo Dan u godini ("y") ili Dan ("d"). Kada je interval Weekday ("w"), DateDiff daje broj sedmica između dva datuma. Ako datum1 pada na ponedeljak, DateDiff prebrojava ponedeljak do datuma2. Broji datum2, ali ne i datum1. Međutim, ako je interval Sedmica ("ww"), funkcija DateDiff vraća broj kalendarskih sedmica između dva datuma. Računa broj nedelja između datuma1 i datuma2. DateDiff računadatum2 ako pada u nedelju; ali ne računa datum1, čak i ako padne u nedelju.
Ako datum1 upućuje na kasniju tačku u vremenu od datuma2, funkcija DateDiff daje negativan broj.
Argument prvidanusedmici utiče na izračunavanja koja koriste simbole intervala "w" i "ww".
Ako je datum1ili datum2slovne oznake datuma, navedena godina postaje trajni deo tog datuma. Međutim, ako su datum1 ili datum2 pod dvostrukim znacima navoda (" ") i izostavite godinu, trenutna godina se umeće u kôd svaki put kada se proceni izraz datuma1 ili datum2 . To omogućava pisanje koda koji se može koristiti u različitim godinama.
Kada poredite 31. decembar sa 1. januarom prve sledeće godine, DateDiff za godinu ("yyyy") daje 1, iako je protekl samo dan.
Napomena: Za datum1 i datum2, ako je postavka svojstva Kalendar gregorijanski, navedeni datum mora biti gregorijanski. Ako je kalendar hidžra kalendar, navedeni datum mora da bude Hidžra.
Primeri dateDiff upita
Izraz |
Rezultati |
---|---|
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Izraz1 FROM ProductSales; |
Daje razliku između datuma2 i datuma1 (smatrajte datum1 najstarijim, a Datum2 najnovijim) kao brojem "Godine". Rezultat: Razlika između vrednosti u polju "DateofSale" i datuma "01.01.2010." kao broj "Godina". |
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Daje razliku između sistemskog datuma i "DateofSale" kao broja "Kvartali" (na osnovu godine kalendara) i prikazuje se u koloni "DaysSinceSale". daje razliku između sistemskog datuma i "DateofSale" kao broja "Meseci" i prikazuje se u koloni "DaysSinceSale". |
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Daje razliku između sistemskog datuma i "DateofSale" kao broja "Dana" i prikazuje se u koloni "DaysSinceSale". |
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Daje razliku između sistemskog datuma i "DateofSale" kao broja "Dana" i prikazuje se u koloni "DaysSinceSale". |
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Daje razliku između sistemskog datuma i "DateofSale" kao broj 'Weekdays' i prikazuje se u koloni "DaysSinceSale". Ako "DateofSale" pada na ponedeljak, DateDiff računa broj ponedeljaka do sistemskog datuma. Broji sistemski datum, ali ne i vrednost u "DateofSale". |
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Daje razliku između sistemskog datuma i "DateofSale" kao broj "Kalendarski sedmica" i prikazuje se u koloni "DaysSinceSale". Broji broj nedelja između "DateofSale" i "sistemskog datuma". Brojiće sistemski datum ako padne u nedelju; ali ne računa "DateofSale", čak i ako pada u nedelju. |
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Daje razliku između sistemskog datuma i "DateTime" kao broja "Časovi" i prikazuje se u koloni "DaysSinceSale". |
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Daje razliku između sistemskog datuma i "DateTime" kao broja "Minuti" i prikazuje se u koloni "DaysSinceSale". |
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Daje razliku između sistemskog datuma i "DateTime" kao broja "sekundi" i prikazuje se u koloni "DaysSinceSale". |
Primer izraza
Korišćenje funkcije DateDiff u izrazu Funkciju DateDiff možete da koristite gde god možete da koristite izraze. Na primer, pretpostavimo da imate obrazac koji koristite za ispunjavanje porudžbina klijenata. U tabeli "Porudžbine" imate polje pod imenom ReceiveBefore koje sadrži datum do kog je klijentu potrebno da primi porudžbinu. Funkciju DateDiff možete da koristite sa okvirom za tekst u obrascu da biste prikazali broj preostalih dana pre isporuke porudžbine.
Pod pretpostavkom da je potrebno 10 dana da se isporuči bilo koja porudžbina, postavite svojstvo izvora kontrole okvira za tekst na sledeći način:
=DateDiff("d", Now(), [Porudžbine].[ ReceiveBefore])-10
Kada otvorite obrazac u prikazu obrasca, okvir za tekst prikazuje broj preostalih dana pre isporuke porudžbine. Ako je preostalo manje od 10 dana pre nego što klijent mora da primi porudžbinu, broj u okviru za tekst je negativan i ukazuje na to koliko dana će porudžbina kasniti ako odmah bude isporučena.
VBA primer
Korišćenje funkcije DateDiff u VBA kodu
Ovaj primer koristi funkciju DateDiff za prikazivanje broja dana između datog datuma i današnjeg datuma.
Dim TheDate As Date ' Declare variables.
Dim Msg TheDate = InputBox("Enter a date") Msg = "Days from today: " & DateDiff("d", Now, TheDate) MsgBox Msg