Vrne podatkovni tip Variant (Long), ki določa število časovnih intervalov med dvema datumoma.
Sintaksa
DateDiff(interval, date1, date2[, firstdayofweek][, firstweekofyear])
Funkcija DateDiff ima te argumente:
| Argument | Opis |
|---|---|
interval |
Obvezen. Izraz niza, ki je časovni interval, s katerim izračunate razliko med date1 in date2. |
date1, date2 |
Obvezno. Variant (Datum). Dva datuma, ki ju želite uporabiti v izračunu. |
firstdayofweek |
Neobvezen. Konstanta, ki določa prvi dan v tednu. Če je ne določite, se predvideva, da je to nedelja. |
firstweekofyear |
Izbirno. Konstanta, ki določa prvi teden v letu. Če ga ne določite, je prvi teden tisti, v katerem je 1. januar. |
Nastavitve
Argument interval 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 firstdayofweek ima te nastavitve:
| Konstanta | Vrednost | Opis |
|---|---|---|
vbUseSystem |
0 | Uporablja 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 | Uporablja nastavitev NLS API. |
vbFirstJan1 |
1 | Začne se s tednom, v katerem je 1. januar (privzeto). |
vbFirstFourDays |
2 | Začne se s prvim tednom, ki ima vsaj štiri dni v novem letu. |
vbFirstFullWeek |
3 | Začne se s prvim popolnim tednom v letu. |
Opombe
S funkcijo DateDiff lahko ugotovite, koliko navedenih časovnih intervalov je med dvema datumoma. Uporabite DateDiff lahko na primer 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 date1 in date2, lahko uporabite dan v letu ("y") ali dan ("d"). Kdaj interval je dan v tednu ("w"), DateDiff vrne število tednov med dvema datumoma. Če date1 pade na ponedeljek, DateDiff šteje število ponedeljkov do date2. Šteje date2 , vendar ne date1. Če interval pa je teden ("ww"), DateDiff funkcija vrne število koledarskih tednov med dvema datumoma. Prešteje število nedelj med date1 in date2.
DateDiff šteje date2 , če pade na nedeljo, vendar ne šteje date1, tudi če pade na nedeljo.
Če date1 se funkcija sklicuje na poznejši časovni trenutek od date2, DateDiff funkcija vrne negativno število.
Argument firstdayofweek vpliva na izračune, ki uporabljajo "w" simbole intervalov »and "ww" «.
Če date1 je datumska dobesednost ali date2 je, navedeno leto postane stalni del tega datuma. Če date1 pa je OR date2 v dvojnih narekovajih (" ") in izpustite leto, se trenutno leto vstavi v kodo vsakič, ko se ovrednoti date1 izraz OR date2 . To vam omogoča, da napišete kodo, ki jo lahko uporabite v različnih letih.
Ko 31. december primerjate s 1. januarjem naslednjega leta, DateDiff funkcija FOR Year ("yyyy") vrne 1, čeprav je minil le en dan.
Opomba
For date1 in date2, če je lastnost nastavljena Calendar na gregorijanski, mora biti 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 (v letih) med datumom 01/01/2010 in vrednostmi v DateofSale polju. |
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Vrne razliko v četrtletjih glede na koledarsko leto med sistemskim datumom in DateofSale, in jo prikaže v stolpcu DaysSinceSale . |
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Vrne razliko v dnevih med sistemskim datumom in DateofSale, in jo prikaže v stolpcu DaysSinceSale . |
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Vrne razliko v dnevih med sistemskim datumom in DateofSale, in jo prikaže v stolpcu DaysSinceSale . |
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Vrne razliko v delavnikih med sistemskim datumom in DateofSale, in jo prikaže v stolpcu DaysSinceSale . Če DateofSale pade na ponedeljek, DateDiff prešteje število ponedeljkov do datuma sistema. Prešteje sistemski datum, ne pa tudi vrednosti DateofSale . |
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Vrne razliko v koledarskih tednih med sistemskim datumom in DateofSale, in jo prikaže v stolpcu DaysSinceSale . Prešteje število nedelj med sistemskim DateofSale datumom in sistemskim datumom. Šteje sistemski datum, če pade na nedeljo, vendar ne šteje DateofSale, tudi če pade na nedeljo. |
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Vrne razliko (v urah) med sistemskim datumom in DateTime, in jo prikaže v stolpcu DaysSinceSale . |
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Vrne razliko (v minutah) med sistemskim datumom in DateTime, in jo prikaže v stolpcu DaysSinceSale . |
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Vrne razliko v sekundah med sistemskim datumom in DateTime, in jo prikaže v stolpcu DaysSinceSale . |
Uporaba funkcije DateDiff v izrazu
Funkcijo DateDiff lahko uporabite povsod, kjer lahko uporabljate izraze. Recimo, da imate obrazec, ki ga uporabljate za izpolnitev naročila strank. V tabeli Naročila imate poimenovano ReceiveBefore polje, ki vsebuje datum, do katerega mora stranka prejeti naročilo. Funkcijo DateDiff z besedilnim poljem na obrazcu lahko uporabite za prikaz števila dni, ki so še preživeli, preden je naročilo odposlano.
Ob predpostavki, da pošiljanje naročila traja deset dni, nastavite lastnost Vir kontrolnika polja z besedilom, kot sledi:
=DateDiff("d", Now(), [Orders].[ReceiveBefore])-10
Ko odprete obrazec v pogledu obrazca, je v besedilnem polju prikazano število preostalih dni, preden je naročilo odposlano. Če je ostalo manj kot 10 dni, preden mora stranka prejeti naročilo, je številka v besedilnem polju negativna. Označuje, koliko dni bo naročilo zamujalo, če ga pošljete takoj.
Uporaba funkcije DateDiff v kodi VBA
V tem primeru je funkcija uporabljena DateDiff za prikaz števila dni med določenim 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