Vrne podatkovni tip Različica (dolgo celo število), ki navaja število časovnih intervalov med dvema navedenima datumoma.
Sintaksa
DateDiff ( interval, daum1, datum2 [, prvi dan v tednu] [, prvi dan v letu] )
Sintaksa funkcije DateDiff ima te argumente:
Argument |
Opis |
---|---|
Interval |
Obvezno. Izraz niza, ki je časovni interval za uporabo izračuna razlike med argumentoma datum1 in datum2. |
datum 1, datum2 |
Obvezno. Variant (Datum). Dva datuma, ki ju želite uporabiti v izračunu. |
Prvi dan v tednu |
Izbirno. Konstanta, ki določa prvi dan v tednu. Če ni določena, se domneva, da je to nedelja. |
Prvi teden v letu |
Izbirno. Konstanta, ki določa prvi teden v letu. januar. |
Nastavitve
Interval argument ima te nastavitve:
Nastavitev |
Opis |
---|---|
yyyy |
Leto |
q |
Četrtletje |
m |
Mesec |
y |
Dan v letu |
d |
Dan |
w |
Delovni dan |
ww |
Teden |
h |
Ura |
n |
Minuta |
s |
Sekunda |
Argument prvi dan v tednu ima te nastavitve:
Konstanta |
Vrednost |
Opis |
---|---|---|
vbUseSystem |
0 |
Uporabite nastavitev NLS API. |
vbSunday |
1 |
Nedelja (privzeto) |
vbMonday |
2 |
Ponedeljek |
vbTuesday |
3 |
Torek |
vbWednesday |
4 |
Sreda |
vbThursday |
5 |
Četrtek |
vbFriday |
6 |
Petek |
vbSaturday |
7 |
Sobota |
Konstanta |
Vrednost |
Opis |
---|---|---|
vbUseSystem |
0 |
Uporabite nastavitev NLS API. |
vbFirstJan1 |
1 |
Začnite s tednom, v katerem je 1. januar (privzeto). |
vbFirstFourDays |
2 |
Začnite s prvim tednom, ki ima vsaj štiri dni v novem letu. |
vbFirstFullWeek |
3 |
Začnite s prvim popolnim tednom v letu. |
Opombe
Funkcijo DateDiff lahko uporabite, da ugotovite, koliko navedenih časovnih intervalov je med dvema datumoma. Funkcijo DateDiff lahko na primer uporabite za izračun števila dni med dvema datumoma, ali število tednov od današnjega dne do konca leta.
Če želite izračunati število dni med datumom1 in datumom2, lahko uporabite dan v letu ("y") ali dan ("d"). Ko je interval dan v tednu ("w"), DateDiff vrne število tednov med dvema datumoma. Če datum1 pade na ponedeljek, DateDiff prešteje število ponedeljkov do datuma2. Šteje datum2, ne pa datuma1. Če pa je interval teden ("ww"), pa funkcija DateDiff vrne število koledarskih tednov med dvema datumoma. Prešteje število nedelj med datumom1 in datumom2. Funkcija DateDiff šteje datum2, če pade na nedeljo; vendar pa ne šteje datuma1, tudi če pade na nedeljo.
Če se datum1 nanaša na poznejši čas od datuma2, funkcija DateDiff vrne negativno število.
Argument prvi dan v tednu vpliva na izračune, ki uporabljajo simbole intervalov "w" in "ww".
Če je datum1 ali datum2dobesedna datumska vrednost, navedeno leto postane trajen del tega datuma. Vendar pa, če je datum1 ali datum2 med dvojnimi narekovaji (" "), in izpustite leto, se trenutno leto vstavi v kodo vsakič, ko se ovrednoti izraz datum1 ali datum2. To omogoča zapis kode, ki jo je mogoče uporabiti v različnih letih.
Pri primerjavi 31. decembra s 1. januarjem leta, ki sledi, funkcija DateDiff za leto ("yyyy") vrne 1, čeprav je potekel le en dan.
Opomba: Za datum1 in datum2, če je lastnost Calendar nastavljena na gregorijanski, mora biti za datum podan datum gregorijanskega koledarja. Če gre za koledar Hijri, mora biti podani datum iz koledarja Hijri.
Primeri poizvedbe DateDiff
Izraz |
Rezultati |
---|---|
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; |
Vrne razliko med »Datum2« in »Datum1« (»Datum1« je najstarejši in »Datum2« kot najnovejši) kot število »Leta«. Rezultat: razlika med vrednostmi v polju »DateofSale« in datumom »01/01/2010« kot število »Leta«. |
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Vrne razliko med sistemskim datumom in »DateofSale« kot številom »Četrtletja« (glede na leto koledarjev) in je prikazana v stolpcu »DaysSinceSale«. vrne razliko med sistemskim datumom in »DateofSale« kot številom »Meseci« in je prikazana v stolpcu »DaysSinceSale«. |
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Vrne razliko med sistemskim datumom in »DateofSale« kot številom »Dni« in je prikazana v stolpcu »DaysSinceSale«. |
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Vrne razliko med sistemskim datumom in »DateofSale« kot številom »Dni« in je prikazana v stolpcu »DaysSinceSale«. |
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Vrne razliko med sistemskim datumom in »DateofSale« kot številom »Delovni dnevi« in je prikazana v stolpcu »DaysSinceSale«. Če je »DateofSale« v ponedeljek, Funkcija DateDiff šteje število ponedeljkov do sistemskega datuma. Šteje sistemski datum, ne pa vrednosti v »DateofSale«. |
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Vrne razliko med sistemskim datumom in »DateofSale« kot številom »Tednov koledarjev« in je prikazana v stolpcu »DaysSinceSale«. Prešteje število nedelj med »DateofSale« in »sistemski datum«. Prešteje sistemski datum, če pade na nedeljo; vendar ne šteje "DateofSale", tudi če ne pade na nedeljo. |
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Vrne razliko med sistemskim datumom in »DateTime« kot številom »Ure« in je prikazana v stolpcu »DaysSinceSale«. |
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Vrne razliko med sistemskim datumom in »DateTime« kot številom »Minute« in je prikazana v stolpcu »DaysSinceSale«. |
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Vrne razliko med sistemskim datumom in »DateTime« kot številom »sekund« in je prikazana v stolpcu »DaysSinceSale«. |
Primer izraza
Uporaba funkcije DateDiff v izrazu Funkcijo DateDiff lahko uporabite povsod , kjer lahko uporabite izraze. Recimo, da imate obrazec, ki ga uporabljate za izpolnitev naročila strank. V tabeli »Naročila« imate polje »PrejetoDo«, ki vsebuje datum, do katerega mora stranka prejeti naročilo. Funkcijo DateDiff lahko uporabite s poljem z besedilom v obrazcu za prikaz preostalega števila dni, preden je treba odposlati pošiljko.
Recimo, da odprema vseh naročil traja deset dni; lastnost ControlSource polja z besedilom nastavite takole:
= DateDiff("d", Now(), [Orders].[ ReceiveBefore]) -10
Ko odprete obrazec v pogledu obrazca, polje z besedilom prikaže število preostalih dni, preden je treba odposlati pošiljko. Če je do odpreme pošiljke ostalo manj kot 10 dni, je številka v polju z besedilom negativna in označuje, koliko dni zamude bo imelo naročilo, če bo takoj odposlano.
primer VBA
Uporaba funkcije DateDiff v kodi VBA
V tem primeru je funkcija DateDiff uporabljena za prikaz števila dni med podanim datumom in današnjim dnem.
Dim TheDate As Date ' Declare variables.
Dim Msg TheDate = InputBox("Enter a date") Msg = "Days from today: " & DateDiff("d", Now, TheDate) MsgBox Msg