Funkcija DateDiff

Velja za
Access za Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

Glejte tudi

Izbira ustrezne funkcije za datum