Tagastatakse andmed, mille tüüp on Variant (pikk) ja mis määravad kahe konkreetse kuupäeva vahelised ajavahemikud.
Süntaks
DateDiff ( interval, date1, date2 [, firstdayofweek] [, firstweekofyear] )
Funktsiooni DateDiff süntaksil on järgmised argumendid.
Argument |
Kirjeldus |
---|---|
interval |
Nõutav. Stringavaldis, millega määratakse ajavahemik kuupäeva 1 (date1) ja kuupäeva 2 (date2) vahelise erinevuse arvutamiseks. |
date1, date2 |
Nõutav. Andmetüüp Variant (kuupäev). Kaks kuupäeva, mida soovite arvutamisel kasutada. |
firstdayofweek |
Valikuline. Nädala esimest päeva määrav konstant. Kui seda pole määratud, siis eeldatakse, et see on pühapäev. |
firstweekofyear |
Valikuline. Konstant, mis määratleb aasta esimese nädala. Kui seda pole määratud, eeldatakse, et esimene nädal on 1. jaanuari nädal. |
Sätted
argument intervallil on järgmised sätted.
Säte |
Kirjeldus |
---|---|
yyyy |
Aasta |
q |
Kvartal |
m |
Kuu |
y |
Kuupäev |
d |
Päev |
w |
Nädalapäev |
ww |
Nädal |
h |
Tund |
n |
Minut |
s |
Sekund |
Argumendil firstdayofweek on järgmised sätted.
Konstant |
Väärtus |
Kirjeldus |
---|---|---|
vbUseSystem |
0 |
Kasutatakse 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 |
Kasutatakse NLS API sätet. |
vbFirstJan1 |
1 |
Alustage 1. jaanuari nädalast (vaikeväärtus). |
vbFirstFourDays |
2 |
Alustatakse esimesest nädalast, millel on uues aastas vähemalt neli päeva. |
vbFirstFullWeek |
3 |
Alustatakse aasta esimesest täisnädalast. |
Kommentaarid
Saate funktsiooni DateDiff abil kindlaks teha, mitu määratud ajavahemikku kahe kuupäeva vahele jääb. Näiteks saate funktsiooni DateDiff abil arvutada kahe kuupäeva vahele jäävate päevade arvu või tänasest aasta lõpuni jäävate päevade arvu.
Kahe kuupäeva (date1 ja date2) vahele jäävate päevade arvutamiseks saate kasutada kas kuupäeva („y”) või päeva („d”). Kui argumendi interval väärtuseks on nädalapäev („w”), tagastab DateDiff kahe kuupäeva vahelise nädalate arvu. Kui kuupäev 1 (date1) langeb esmaspäevale, loendab DateDiff kuupäevani 2 (date2) jäävate esmaspäevade arvu. Funktsioon loendab ka kuupäeva 2 (date2), kuid mitte kuupäeva 1 (date1). Kui argumendi interval väärtuseks on nädal („ww”), tagastab funktsioon DateDiff kahe kuupäeva vahele jäävate kalendrinädalate arvu. Funktsioon loendab kahe kuupäeva (date1 ja date2) vahele jäävate pühapäevade arvu. Funktsioon DateDiff arvab sisse kuupäeva 2 (date2), kui see langeb pühapäevale, aga mitte kuupäeva 1 (date1), isegi kui see langeb pühapäevale.
Kui kuupäev 1 (date1) on pärast kuupäeva 2 (date2), siis tagastab funktsioon DateDiff negatiivse arvu.
Argument firstdayofweek mõjutab arvutusi, kus kasutatakse vahemikusümboleid „w” ja „ww”.
Kui date1 või date2 on kuupäevaliteraal, muutub määratud aasta selle kuupäeva püsivaks osaks. Kui argumendi date1 või date2 väärtus on kahekordsetes jutumärkides (" ") ja aasta on ära jäetud, sisestatakse praegune aasta igal kuupäeva 1 (date1) või kuupäeva 2 (date2) avaldise hindamisel koodi. Nii on võimalik kirjutada koodi, mida saab kasutada eri aastatel.
31. detsembri võrdlemisel vahetult järgneva aasta 1. jaanuariga tagastab DateDiff aasta väärtusena („yyyy”) arvu 1, kuigi vahemik hõlmab ainult ühte päeva.
Märkus.: Kui atribuudi Kalender sätteks on valitud Gregoriuse, peab argumendi date1 ja date2 kuupäeva määrama samuti Gregoriuse kalendri järgi. Islami kalendri korral tuleb kasutada islami ajaarvestusele vastavat kuupäeva.
DateDiff Query näited
Avaldis |
Tulemid |
---|---|
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Avaldis1 FROM Tootemüük; |
Tagastab argumendi Date2 ja Date1 vahe (argumendi Date1 vanimana ja Date2 uusimana) arvuna "Aastad". Tulem: välja "DateofSale" ja kuupäeva "01.01.2010" väärtuste erinevus "Aastate arvuna". |
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Tagastab süsteemikuupäeva ja kuupäeva "DateofSale" vahe kvartalite arvuna (kalenderaasta põhjal) ja kuvab veerus "DaysSinceSale". tagastab süsteemikuupäeva ja kuupäeva "DateofSale" vahe arvuna "Kuud" ja kuvab veerus "DaysSinceSale". |
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Tagastab süsteemikuupäeva ja kuupäeva "DateofSale" vahe arvuna "Days" ja kuvatakse veerus "DaysSinceSale". |
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Tagastab süsteemikuupäeva ja kuupäeva "DateofSale" vahe arvuna "Days" ja kuvatakse veerus "DaysSinceSale". |
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Tagastab süsteemikuupäeva ja kuupäeva "DateofSale" vahe nädalapäevade arvuna ja kuvab veerus "DaysSinceSale". Kui "DateofSale" langeb esmaspäevale, loendab DateDiff süsteemikuupäevani jäänud esmaspäevade arvu. See loendab süsteemikuupäeva, kuid mitte väärtuse lahtris "DateofSale". |
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Tagastab süsteemikuupäeva ja kuupäeva "DateofSale" vahe arvuna "Kalender Weeks" ja kuvab veerus "DaysSinceSale". See loendab pühapäevade arvu vahemikus "DateofSale" ja "system date". See loendab süsteemikuupäeva, kui see langeb pühapäevale; kuid see ei loe ette sõna "DateofSale", isegi kui see langeb pühapäevale. |
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Tagastab süsteemikuupäeva ja kuupäeva "DateTime" vahe arvuna "Hours" ja kuvatakse veerus "DaysSinceSale". |
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Tagastab süsteemikuupäeva ja kuupäeva "DateTime" vahe arvuna "Minutes" ja kuvatakse veerus "DaysSinceSale". |
SELECT DateDiff(",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Tagastab süsteemikuupäeva ja kuupäeva "DateTime" vahe sekundite arvuna ja kuvab veerus "DaysSinceSale". |
Näidisavaldis
Funktsiooni DateDiff kasutamine avaldises Funktsiooni DateDiff saate kasutada kõikjal, kus saate kasutada avaldisi. Oletagem näiteks, et teil on vorm, mida kasutate klienditellimuste täitmiseks. Tabelis Tellimused on väli Tarnekuupäev, mis sisaldab kuupäeva, milleks klient peab tellimuse vastu võtma. Saate kasutada funktsiooni DateDiff koos vormi tekstiväljaga, et kuvada tellimuse tarnekuupäevale jäänud päevade arv.
Eeldades, et mis tahes tellimuse tarnimiseks läheb aega kümme päeva, saate määrata tekstivälja atribuudi Juhtelemendi allikas järgmiselt:
=DateDiff(“d”, Now(), [Tellimused].[Tarnekuupäev])-10
Kui avate vormi vormivaates, kuvatakse tekstiväljal tellimuse tarnekuupäevani jäänud päevade arv. Kui kättetoimetamiseni on jäänud vähem kui 10 päeva, on tekstiväljal negatiivne arv, mis näitab seda, mitu päeva tellimus hilineb, kui see kohe välja saata.
VBA näide
Funktsiooni DateDiff kasutamine VBA-koodis
Selles näites kuvatakse funktsiooni DateDiff abil konkreetse kuupäeva ja tänase päeva vahele jäävate päevade arv.
Dim TheDate As Date ' Declare variables.
Dim Msg TheDate = InputBox("Enter a date") Msg = "Days from today: " & DateDiff("d", Now, TheDate) MsgBox Msg