Funkcija DateDiff

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

Vrne različico (dolgo), 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, ki ga uporabite za izračun razlike 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 tega ne določite, se predpostavlja nedelja.
firstweekofyear Izbirno. Konstanta, ki določa prvi teden v letu. Če tega ne določite, je prvi teden teden, v katerem nastopi 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 polnim tednom v letu.

Opombe

S funkcijo DateDiff lahko določite, koliko določenih časovnih intervalov obstaja med dvema datumoma. Uporabite DateDiff lahko na primer za izračun števila dni med dvema datumoma ali števila tednov med današnjim dnem in koncem leta.

Če želite izračunati število dni med in date1date2, lahko uporabite dan v letu ("y") ali dan ("d"). When is interval Weekday ("w") DateDiff vrne število tednov med obema datumoma. Če date1 pade na ponedeljek, DateDiff šteje število ponedeljkov do date2. Šteje date2 , vendar ne date1. Če interval pa je Week ("ww"), DateDiff funkcija vrne število koledarskih tednov med obema datumoma. Šteje število nedelj med date1 in date2. DateDiff šteje date2 , če pade v nedeljo, vendar se ne šteje date1, tudi če pade v nedeljo.

Če se date1 funkcija sklicuje na poznejšo časovno točko kot date2, DateDiff vrne negativno število.

Argument firstdayofweek vpliva na izračune, ki uporabljajo simbole intervala "w" in "ww"

Če date1 je datum dobeseden ali date2 je, določeno leto postane stalni del tega datuma. Če date1 pa je ali date2 vključeno v dvojne narekovaje (" ") in izpustite leto, se trenutno leto vstavi v kodo vsakič, ko se ovrednoti date1 izraz or date2 . To omogoča pisanje kode, ki jo lahko uporabljate v različnih letih.

Ko primerjate 31. december in 1. januar naslednjega leta, DateDiff za leto ("yyyy") vrne 1, čeprav je minil le en dan.

Opomba

Za date1 in date2, če Calendar je nastavitev lastnosti gregorijanska, mora biti navedeni datum gregorijanski. Č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 med sistemskim datumom in DateofSale, v četrtletjih, ki temeljijo na koledarskem letu, 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 med sistemskim datumom in DateofSale, v delavnikih in jo prikaže v stolpcu DaysSinceSale . Če DateofSale pade na ponedeljek, DateDiff šteje število ponedeljkov do sistemskega datuma. Šteje sistemski datum, ne pa tudi DateofSale vrednosti.
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 . Šteje število nedelj med in DateofSale sistemskim datumom. Sistemski datum šteje, če pade na nedeljo, vendar se ne šteje DateofSale, tudi če pade v 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 lahko DateDiff uporabite povsod, kjer lahko uporabite izraze. Recimo, da imate obrazec, ki ga uporabljate za izpolnitev naročila strank. V tabeli »Naročila« imate polje ReceiveBefore , 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; nastavite lastnost vira kontrolnika polja z besedilom 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. Označuje, koliko dni zamude bo imelo naročilo, če ga takoj odpošljete.

Uporaba funkcije DateDiff v kodi VBA

V tem primeru je funkcija uporabljena DateDiff 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

Glejte tudi

Izbira ustrezne funkcije za datum