Vraća vrijednost Variant (Long) koja označava broj vremenskih intervala između dva navedena datuma.
Sintaksa
DateDiff ( interval, datum1, datum2 [, prvi_dan_u_tjednu] [, prvi_tjedan_godine] )
Sintaksa funkcije DateDiff sadrži sljedeće argumente:
Argument |
Opis |
---|---|
interval |
Obavezno. Nizovni izraz koji predstavlja vremenski interval koji koristite za izračun razlike između datuma1 i datuma2. |
datum1, datum2 |
Obavezno. Variant (datum). Dva datuma koja želite koristiti za izračun. |
prvi_dan_u_tjednu |
Neobavezno. Vrsta konstanta koja određuje prvi dan u tjednu. Ako nije određena, kao prvi dan u tjednu koristi se nedjelja. |
prvi_tjedan_u_godini |
Neobavezno. Konstanta koja određuje prvi tjedan u godini. Ako nije navedeno, pretpostavlja se da je prvi tjedan tjedan u kojem se pojavljuje 1. siječnja. |
Postavke
Interval uargument 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 |
Minuta |
s |
Sekunda |
Argument prvi_dan_u _tjednu ima sljedeće postavke:
Konstanta |
Vrijednost |
Opis |
---|---|---|
vbUseSystem |
0 |
Koristite 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 |
Koristite postavku NLS API-ja. |
ee |
1 |
Započnite s tjedanom u kojem se pojavljuje 1. siječnja (zadano). |
vbFirstFourDays |
2 |
Započnite s prvim tjedanom koji ima najmanje četiri dana u novoj godini. |
vbFirstFullWeek |
3 |
Počnite od prvog punog tjedna u godini. |
Napomene
Pomoću funkcije DateDiff možete odrediti koliko određenih vremenskih intervala postoji između dva datuma. Možete, primjerice, koristiti DateDiff da biste izračunali broj dana između dva datuma ili broj tjedana između današnjeg i kraja godine.
Da biste izračunali broj dana između datuma1i datuma2, možete koristiti dan u godini ("y") ili dan ("d"). Kada je interval Radni dan ("w"), DateDiff vraća broj tjedana između ta dva datuma. Ako je datum1 u ponedjeljak, DateDiff broji ponedjeljak do datuma2. Računa datum2, ali ne i datum1. Ako je interval Tjedan ("ww"), funkcija DateDiff vraća broj kalendarskih tjedana između ta dva datuma. Broji nedjelju između datuma1 idatuma2. DateDiffbroji datum2 ako pada na nedjelju; ali ne računa datum1, čak i ako pada na nedjelju.
Ako se datum1 odnosi na noviju točku u vremenu od datuma2, funkcija DateDiff vraća negativan broj.
Argument prvi_dan_u _tjednu utječe na izračune koji koriste simbole intervala "w" i "ww".
Ako je datum1ili datum2datumski literal, navedena godina postaje trajni dio tog datuma. No ako je datum1 ili datum2 u dvostrukim navodnicima (" "), a izostavite godinu, trenutna se godina umeće u kod svaki put kada se izraz date1 ili date2 vrednuju. To omogućuje pisanje koda koji se može koristiti u različitim godinama.
Prilikom usporedbe od 31. prosinca do 1. siječnja sljedeće godine , DateDiff za godinu ("yyyy") vraća 1, iako je istekao samo jedan dan.
Napomena: Ako je postavkasvojstva Kalendar gregorijanski, navedeni datum mora biti gregorijanski. Ako je kalendar Hidžri, navedeni datum mora biti Hidžri.
Primjeri upita DateDiff
Izraz |
Rezultati |
---|---|
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; |
Vraća razliku između datuma2 i datuma1 (datum1 smatra najstarijim i datum2 kao najnovije) kao broj "Godina". Rezultat: razlika između vrijednosti u polju "DateofSale" i datuma "01/01/2010" kao broj "Godina". |
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROMProdajaProdaja; |
Vraća razliku između datuma sustava i "DateofSale" kao broj "Tromjesečja" (na temelju godine kalendara) i prikazuje u stupcu "DaysSinceSale". vraća razliku između datuma sustava i "DateofSale" kao broj "Mjeseci" i prikazuje se u stupcu "DaysSinceSale". |
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROMProdajaProdaja; |
Vraća razliku između datuma sustava i "DateofSale" kao broj "Dani" i prikazuje se u stupcu "DaysSinceSale". |
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROMProdajaProdaja; |
Vraća razliku između datuma sustava i "DateofSale" kao broj "Dani" i prikazuje se u stupcu "DaysSinceSale". |
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROMProdajaProdaja; |
Vraća razliku između datuma sustava i "DateofSale" kao broj "Radnim danima" i prikazuje se u stupcu "DaysSinceSale". Ako "DateofSale" pada na ponedjeljak, DateDiff broji ponedjeljak do datuma sustava. Broji datum sustava, ali ne i vrijednost u argumentu "DateofSale". |
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROMProdajaProdaja; |
Vraća razliku između datuma sustava i "DateofSale" kao broj "Calender Weeks" i prikazuje u stupcu "DaysSinceSale". Broji nedjelju između "DateofSale" i "sistemskog datuma". Broji datum sustava ako padne u nedjelju; ali ne broji "DateofSale", čak i ako padne u nedjelju. |
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Vraća razliku između datuma sustava i "DateTime" kao broj "Sati" i prikazuje se u stupcu "DaysSinceSale". |
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Vraća razliku između datuma sustava i "DateTime" kao broja "Minute" i prikazuje se u stupcu "DaysSinceSale". |
SELECT DateDiff("s";[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Vraća razliku između datuma sustava i "DateTime" kao broja "sekundi" i prikazuje se u stupcu "DaysSinceSale". |
Primjer izraza
Korištenje funkcije DateDiff u izrazu Funkciju DateDiff možete koristiti gdje god možete koristiti izraze. Pretpostavimo, primjerice, da imate obrazac koji koristite za ispunjavanje narudžbi klijenata. U tablici Narudžbe imate polje s nazivom ReceiveBefore koje sadrži datum do kojeg kupac mora primiti narudžbu. Funkciju DateDiff možete koristiti s tekstnim okvirom na obrascu da biste prikazali broj preostalih dana prije otpreme narudžbe.
Uz pretpostavku da je za isporuku bilo koje narudžbe potrebno deset dana, svojstvo Izvor kontrole tekstnog okvira postavite na sljedeći način:
=DateDiff("d", Now(), [Narudžbe].[ ReceiveBefore])-10
Kada obrazac otvorite u prikazu obrasca, u tekstnom se okviru prikazuje broj preostalih dana prije otpreme narudžbe. Ako je preostalo manje od 10 dana prije nego što korisnik mora primiti narudžbu, broj u tekstnom okviru negativan je i označava koliko će dana kasniti narudžba ako se odmah otpremi.
Primjer VBA-a
Korištenje funkcije DateDiff u VBA kodu
U ovom se primjeru pomoću funkcije DateDiff prikazuje broj dana između navedenog datuma i danas.
Dim TheDate As Date ' Declare variables.
Dim Msg TheDate = InputBox("Enter a date") Msg = "Days from today: " & DateDiff("d", Now, TheDate) MsgBox Msg