Vraća vrijednost Variant (Long) koja označava broj vremenskih intervala između dvaju datuma.
Sintaksa
DateDiff(interval, date1, date2[, firstdayofweek][, firstweekofyear])
Funkcija DateDiff ima ove argumente:
| Argument | Opis |
|---|---|
interval |
Obavezno. Nizovni izraz koji označava vremenski interval koji koristite za izračun razlike između date1 i date2. |
date1, date2 |
Obavezno. Variant (datum). Dva datuma koja želite koristiti za izračun. |
firstdayofweek |
Neobavezno. Konstanta koja određuje prvi dan u tjednu. Ako ga ne navedete, kao prvi dan u nedjelju koristi se. |
firstweekofyear |
Neobavezno. Konstanta koja određuje prvi tjedan u godini. Ako ga ne navedete, prvi je tjedan tjedan u kojem je 1. siječnja. |
Postavke
Argument interval ima sljedeće postavke:
| Postavka | Opis |
|---|---|
yyyy |
Godina |
q |
Tromjesečje |
m |
Mjesec |
y |
Dan u godini |
d |
Dan |
w |
Weekday |
ww |
Tjedan |
h |
Sat |
n |
Minute |
s |
Sekunda |
Argument firstdayofweek ima sljedeće postavke:
| Konstanta | Vrijednost | Opis |
|---|---|---|
vbUseSystem |
0 | Koristi postavku NLS API-ja. |
vbSunday |
1 | Nedjelja (zadano) |
vbMonday |
2 | Ponedjeljak |
vbTuesday |
3 | utorak |
vbWednesday |
4 | Srijeda |
vbThursday |
5 | Četvrtak |
vbFriday |
6 | Petak |
vbSaturday |
7 | Subota |
| Konstanta | Vrijednost | Opis |
|---|---|---|
vbUseSystem |
0 | Koristi postavku NLS API-ja. |
vbFirstJan1 |
1 | Počinje s tjednom u kojem je 1. siječnja (zadano). |
vbFirstFourDays |
2 | Počinje s prvim tjednom koji ima najmanje četiri dana u novoj godini. |
vbFirstFullWeek |
3 | Počinje s prvim punim tjednom u godini. |
Napomene
Funkciju DateDiff možete koristiti da biste odredili koliko određenih vremenskih intervala postoji između dva datuma. Možete, primjerice, izračunati DateDiff broj dana između dvaju datuma ili broj tjedana između današnjeg i kraja godine.
Da biste izračunali broj dana između date1 i date2, možete koristiti ili Dan u godini ("y") ili Dan ("d"). Kada interval je dan u tjednu ("w"), DateDiff vraća broj tjedana između dva datuma. Ako date1 pada na ponedjeljak, DateDiff broji broj ponedjeljaka do date2. Računa se date2 , ali ne date1. Ako interval je tjedan ("ww"), DateDiff funkcija vraća broj kalendarskih tjedana između dva datuma. Broji nedjelje između date1 i date2.
DateDiff Računa date2 se ako padne u nedjelju, ali se ne računa date1, čak i ako padne u nedjelju.
Ako date1 se odnosi na kasniju vremensku točku od date2, DateDiff funkcija vraća negativan broj.
Argument firstdayofweek utječe na izračune u kojima "w" se koriste simboli intervala i "ww" .
Ako date1date2 je riječ o doslovnom datumu, navedena godina postaje trajni dio datuma. No ako date1date2 se u dvostrukim navodnicima (" ") i izostavite godinu, trenutna godina bit će umetnuta u kod prilikom svakog vrednovanja izraza date1 ILI date2 . To omogućuje pisanje koda koji možete koristiti u različitim godinama.
Kada usporedite 31. prosinca s 1. siječnjem sljedeće godine, DateDiff za godinu ("yyyy") vraća 1 iako je prošao samo jedan dan.
Napomena
Za date1 i date2, ako je postavka Calendar svojstva gregorijanski, navedeni datum mora biti gregorijanski. Ako je kalendar hidžra kalendar, navedeni datum mora biti islamski kalendar.
Primjeri upita za DateDiff
| Izraz | Rezultati |
|---|---|
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; |
Vraća razliku u godinama između datuma 01/01/2010 i vrijednosti u DateofSale polju. |
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Vraća razliku u tromjesečjima na temelju kalendarske godine između datuma sustava i DateofSale, te je prikazuje u DaysSinceSale stupcu. |
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Vraća razliku izraženu u danima između datuma sustava i DateofSalestila , te je prikazuje u DaysSinceSale stupcu. |
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Vraća razliku izraženu u danima između datuma sustava i DateofSalestila , te je prikazuje u DaysSinceSale stupcu. |
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Vraća razliku između datuma sustava i DateofSale, u radnim danima te je prikazuje u DaysSinceSale stupcu. Ako DateofSale pada na ponedjeljak, DateDiff broji ponedjeljke do datuma sustava. Broji sistemski datum, ali ne i DateofSale vrijednost. |
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Vraća razliku izraženu u kalendarskim tjednima između datuma sustava i DateofSale, te je prikazuje u DaysSinceSale stupcu. Broji nedjelje između DateofSale i datuma sustava. Broji sistemski datum ako pada u nedjelju, ali se ne broji DateofSale, čak ni ako pada u nedjelju. |
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Vraća razliku izraženu u satima između datuma sustava i DateTimestila , te je prikazuje u DaysSinceSale stupcu. |
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Vraća razliku izraženu u minutama između datuma sustava i DateTimestila , te je prikazuje u DaysSinceSale stupcu. |
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Vraća razliku izraženu u sekundama između datuma sustava i DateTimestila , te je prikazuje u DaysSinceSale stupcu. |
Korištenje funkcije DateDiff u izrazu
Funkciju DateDiff možete koristiti svugdje gdje možete koristiti izraze. Pretpostavimo, na primjer, da imate obrazac koji koristite za ispunjavanje narudžbi kupaca. U tablici Narudžbe postoji polje ReceiveBefore koje sadrži datum do kojeg kupac mora primiti narudžbu. Funkciju DateDiff možete koristiti s tekstnim okvirom na obrascu za prikaz broja dana koji je preostao do otpreme narudžbe.
Uz pretpostavku da je za isporuku narudžbe potrebno deset dana, svojstvo Izvor kontrole tekstnog okvira postavite na sljedeći način:
=DateDiff("d", Now(), [Orders].[ReceiveBefore])-10
Kada obrazac otvorite u prikazu obrasca, u tekstnom se okviru prikazuje broj dana koji je preostao do otpreme narudžbe. Ako je do trenutka primanja narudžbe kupcu preostalo manje od deset dana, broj u tekstnom okviru negativan je broj. Označava koliko će dana kasniti narudžba ako je odmah pošaljete.
Korištenje funkcije DateDiff u kodu programskog jezika VBA
U primjeru se DateDiff koristi funkcija za prikaz broja dana između navedenog 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