Funktsioon DateDiff

Rakenduskoht
Microsoft 365 rakendus Access Access 2024 Access 2021 Access 2019 Access 2016

Tagastab variandi (pikk täisarvu), mis määrab kahe kuupäeva vahele jäävate ajavahemike arvu.

Süntaks

DateDiff(interval, date1, date2[, firstdayofweek][, firstweekofyear])

Funktsioonil DateDiff on järgmised argumendid.

Argument Kirjeldus
interval Nõutav. Stringavaldis, mis tähistab ajavahemikku, mille jooksul arvutatakse vahemiku date1 ja date2.
date1, date2 Nõutav. Andmetüüp Variant (kuupäev). Kaks kuupäeva, mida soovite arvutuses kasutada.
firstdayofweek Valikuline. Nädala esimest päeva määrav konstant. Kui te seda ei määra, eeldatakse, et see on pühapäev.
firstweekofyear Valikuline. Konstant, mis määratleb aasta esimese nädala. Kui te seda ei määra, on esimene nädal 1. jaanuari nädal.

Sätted

Argumendil interval on järgmised sätted.

Säte Kirjeldus
yyyy Year (aasta)
q Quarter (kvartal)
m Month (kuu)
y Kuupäev
d Day (päev)
w Weekday
ww Week (nädal)
h Tund
n Minut
s Sekund

Argumendil firstdayofweek on järgmised sätted.

Konstant Väärtus Kirjeldus
vbUseSystem 0 Kasutab NLS API sätet.
vbSunday 1 Pühapäev (vaikeväärtus)
vbMonday 2 Esmaspäev
vbTuesday 3 Teisipäev
vbWednesday 4 Kolmapäev
vbThursday 5 Neljapäev
vbFriday 6 Reede
vbSaturday 7 Laupäev
Konstant Väärtus Kirjeldus
vbUseSystem 0 Kasutab NLS API sätet.
vbFirstJan1 1 Algab 1. jaanuari nädalaga (vaikesäte).
vbFirstFourDays 2 Algab esimesest nädalast, millel on uue aasta jooksul vähemalt neli päeva.
vbFirstFullWeek 3 Algab aasta esimese täisnädalaga.

Kommentaarid

Selle funktsiooni abil DateDiff saate kindlaks teha, mitu määratud ajavahemikku kahe kuupäeva vahel on. Näiteks saate arvutada DateDiff kahe kuupäeva vahele jäävate päevade arvu või tänasest aasta lõpuni jäävate nädalate arvu.

Päevade arvu date1 arvutamiseks vahemikus ja date2, saate kasutada kas kuupäeva ("y") või päeva ("d"). Kui interval on Nädalapäev ("w"), DateDiff tagastab kahe kuupäeva vahele jäävate nädalate arvu. Kui date1 langeb esmaspäevale, DateDiff loendab esmaspäevade arvu kuni date2. See loeb date2 , kuid mitte date1. Kui interval see on Nädal ("ww"), tagastab funktsioon kahe DateDiff kuupäeva vahele jäävate kalendrinädalate arvu. Loendab pühapäevade arvu vahemikus date1 kuni date2. DateDiff loendab date2 , kui see langeb pühapäevale, kuid see ei loe date1, isegi kui see langeb pühapäevale.

Kui date1 viitab hilisemale ajahetkele DateDiff kui date2, tagastab funktsioon negatiivse arvu.

Argument firstdayofweek mõjutab arvutusi, mis kasutavad "w" intervalli sümboleid."ww"

Kui date1 kuupäevaliteraal on või date2 on see, muutub määratud aasta selle kuupäeva püsivaks osaks. Kui see on jutumärkides () või date2 ümbritsetud jutumärkidega (" ") ja aasta on välja jäetud, lisatakse praegune aasta koodi iga korddate1, kui date1 seda või date2 avaldist hinnatakse. See võimaldab kirjutada koodi, mida saate kasutada erinevatel aastatel.

Kui võrdlete 31. detsembrit järgmise aasta 1. jaanuariga, DateDiff tagastab funktsioon Year ("yyyy") väärtuse 1, kuigi möödunud on ainult üks päev.

Märkus.

Kui atribuudi Calendardate2sätteks date1 on "Gregoriuse", peab sisestatud kuupäev olema "Gregoriuse". Islami kalendri korral tuleb kasutada islami ajaarvestusele vastavat kuupäeva.

DateDiff Query näited

Avaldis Tulemid
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; Tagastab kuupäeva 01/01/2010 ja väljal olevate väärtuste vahe aastates DateofSale .
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Tagastab kalendriaastal põhinevates kvartalites süsteemikuupäeva ja DateofSalei vahe ning kuvab selle veerus DaysSinceSale .
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Tagastab süsteemikuupäeva ja DateofSalei vahelise erinevuse päevades ja kuvab selle veerus DaysSinceSale .
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Tagastab süsteemikuupäeva ja DateofSalei vahelise erinevuse päevades ja kuvab selle veerus DaysSinceSale .
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Tagastab süsteemikuupäeva ja DateofSalei vahe tööpäevadel ning kuvab selle veerus DaysSinceSale . Kui DateofSale see langeb esmaspäevale, DateDiff loendab süsteemse kuupäevani jäänud esmaspäevade arvu. See loendab süsteemikuupäeva, kuid mitte DateofSale väärtuse.
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Tagastab süsteemikuupäeva ja DateofSalei vahelise erinevuse kalendrinädalates ja kuvab selle veerus DaysSinceSale . See loendab süsteemikuupäeva ja pühapäevade DateofSale arvu. See loendab süsteemikuupäeva, kui see langeb pühapäevale, kuid seda ei arvestata DateofSaleisegi siis, kui see langeb pühapäevale.
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Tagastab süsteemikuupäeva ja DateTimei vahelise erinevuse tundides ja kuvab selle veerus DaysSinceSale .
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Tagastab süsteemikuupäeva ja DateTimei vahelise erinevuse minutites ja kuvab selle veerus DaysSinceSale .
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Tagastab süsteemikuupäeva ja DateTimei vahelise erinevuse sekundites ja kuvab selle veerus DaysSinceSale .

Funktsiooni DateDiff kasutamine avaldises

Funktsiooni saate kasutada DateDiff kõikjal, kus saate kasutada avaldisi. Oletagem näiteks, et teil on vorm, mida kasutate klienditellimuste täitmiseks. Tabelis Tellimused on väli nimega ReceiveBefore , mis sisaldab kuupäeva, milleks klient peab tellimuse vastu võtma. Saate kasutada DateDiff funktsiooni koos vormi tekstiväljaga, et kuvada tellimuse tarnele eelnevate päevade arv.

Eeldades, et mis tahes tellimuse saatmiseks kulub kümme päeva, määrake tekstivälja atribuut Juhtelemendi allikas järgmiselt.

=DateDiff("d", Now(), [Orders].[ReceiveBefore])-10

Kui avate vormi vormivaates, kuvatakse tekstiväljal tellimuse tarnele eelnevate päevade arv. Kui kliendil on tellimuse vastuvõtmiseks jäänud vähem kui 10 päeva, on tekstiväljal olev arv negatiivne. See näitab, mitu päeva tellimus hilineb, kui saadate selle kohe.

Funktsiooni DateDiff kasutamine VBA-koodis

Selles näites DateDiff kasutatakse funktsiooni antud kuupäeva ja tänase päeva vahele jäänud päevade kuvamiseks.

Dim TheDate As Date  ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg

Lisateave

Õige kuupäevafunktsiooni valimine