Pateikia variantą (ilgą), nurodantį laiko intervalų skaičių tarp dviejų nurodytų datų.
Sintaksė
DateDiff (intervalas, data1, data2 [, firstdayofweek] [, firstdayofyear] )
Funkcijos DateDiff sintaksė turi tokius argumentus:
| Argumentas | Aprašas |
|---|---|
| intervalas | Būtinas. Eilutės išraiška, kuri yra ir laiko intervalas, kurį galite naudoti norėdami apskaičiuoti skirtumą tarp date1 ir date2. |
| date1, date2 | Būtinas. Variantas (data). Dvi datos, kurį norite naudoti skaičiuojant. |
| firstdayofweek | Pasirinktinis. Konstanta, nurodanti pirmąją savaitės dieną. Jei nenurodyta, ja laikoma sekmadienis. |
| firstweekofyear | Pasirinktinis. Konstanta, nurodanti pirmąją metų savaitę. Jei nenurodyta, pirmąja savaite laikoma savaitė, kurią yra sausio 1 d. |
Parametrai
Intervalo argumento parametrai yra tokie:
| Parametras | Aprašas |
|---|---|
| yyyy | Metai |
| q | Ketvirtis |
| m | Mėnuo |
| y | Metų diena |
| d | Diena |
| w | Weekday |
| ww | Savaitė |
| h | Valanda |
| n | Minutė |
| s | Sekundė |
Argumento " firstdayofweek" parametrai yra tokie:
| Konstanta | Reikšmė | Aprašas |
|---|---|---|
| vbUseSystem | 0 | Naudokite NLS API parametrą. |
| vbSekmadienis | 1 | Sekmadienis (numatytoji reikšmė) |
| vbPirmadienis | 2 | Pirmadienis |
| vbAntradienis | 3 | Antradienis |
| vbTrečiadienis | 4 | Trečiadienis |
| vbKetvirtadienis | 5 | Ketvirtadienis |
| vbpenktadienis | 6 | Penktadienis |
| vbŠeštadienis | 7 | Šeštadienis |
| Konstanta | Reikšmė | Aprašas |
|---|---|---|
| vbUseSystem | 0 | Naudokite NLS API parametrą. |
| vbFirstJan1 | 1 | Pradėti nuo savaitės, kurią yra sausio 1 d. (numatytasis parametras). |
| vbFirstFourDays | 2 | Pradėkite nuo pirmosios savaitės, kuri turi mažiausiai keturias naujųjų metų dienas. |
| vbPirmąjąVisą savaitę | 3 | Pradėkite nuo pirmos visos metų savaitės. |
Pastabos
Funkciją DateDiff galite naudoti norėdami nustatyti, kiek nurodytų laiko intervalų yra tarp dviejų datų. Pavyzdžiui, galite naudoti DateDiff norėdami apskaičiuoti dienų skaičių tarp dviejų datų arba savaičių skaičių nuo šiandienos iki metų pabaigos.
Norėdami apskaičiuoti, kiek dienų yra tarp datos1 ir datos2, galite naudoti metų dieną ("y") arba dieną ("d"). Kai intervalas yra Weekday ("w"), DateDiff pateikia savaičių skaičių tarp dviejų datų. Jeigu date1 patenka į pirmadienį, DateDiff skaičiuoja pirmadienių skaičių iki date2. Jis skaičiuoja date2 , bet ne date1. Tačiau jei intervalas yra Savaitė ("ww"), funkcija DateDiff grąžina kalendorinių savaičių skaičių tarp dviejų datų. Jis skaičiuoja sekmadienių skaičių nuo date1 iki date2. DateDiff skaičiuoja date2 , jei jis patenka į sekmadienį; tačiau jis neskaičiuoja date1, net jei jis patenka į sekmadienį.
Jei data1 nurodo vėlesnį laiko tašką nei data2, funkcija DateDiff grąžina neigiamą skaičių.
Argumentas firstdayofweek turi įtakos skaičiavimams, kuriuose naudojami intervalo simboliai "w" ir "ww".
Jei date1 arba date2 yra datos raidė, nurodyti metai tampa nuolatine tos datos dalimi. Tačiau, jei date1 arba date2 yra parašyti dvigubose kabutėse (" "), o jūs praleidote metus, dabartiniai metai įterpiami į jūsų kodą kiekvieną kartą įvertinus reiškinį date1 arba date2 . Tai leidžia parašyti kodą, kuris gali būti naudojamas skirtingais metais.
Lyginant gruodžio 31 d. su iškart einančių metų sausio 1 d., DateDiff metams ("yyyy") pateikia 1, nors praėjo tik diena.
Pastaba
Date1 ir date2, jei ypatybės Calendar parametras yra Grigaliaus, pateikta data turi būti Grigaliaus. Jei kalendorius yra Hidžros, pateikta data turi būti Hidžros kalendorius.
"DateDiff" užklausų pavyzdžiai
| Išraiška | Rezultatai |
|---|---|
| SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; | Grąžina skirtumą tarp Date2 ir Date1 (Date1 laikyti seniausiu, o Date2 – naujausiu) kaip metų skaičių. Rezultatas: Skirtumas tarp lauke "DateofSale" ir datos "01/01/2010" kaip "Metų" skaičiaus. |
| SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; | Grąžina skirtumą tarp sistemos datos ir "DateofSale" kaip ketvirčių skaičių (remiantis kalendoriniais metais) ir rodomas stulpelyje "DaysSinceSale". grąžina skirtumą tarp sistemos datos ir "DateofSale" kaip mėnesių skaičių ir rodomas stulpelyje "DaysSinceSale". |
| SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; | Grąžina skirtumą tarp sistemos datos ir "DateofSale" kaip dienų skaičių ir rodomas stulpelyje "DaysSinceSale". |
| SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; | Grąžina skirtumą tarp sistemos datos ir "DateofSale" kaip dienų skaičių ir rodomas stulpelyje "DaysSinceSale". |
| SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; | Grąžina skirtumą tarp sistemos datos ir "DateofSale" kaip savaitės dienų skaičių ir rodomas stulpelyje "DaysSinceSale". Jei "DateofSale" patenka į pirmadienį, DateDiff skaičiuoja pirmadienių skaičių iki sistemos datos. Jis skaičiuoja sistemos datą, bet ne "DateofSale" reikšmę. |
| SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; | Grąžina skirtumą tarp sistemos datos ir "DateofSale" kaip "Kalendorius Savaičių" skaičių ir rodo stulpelyje "DaysSinceSale". Jis skaičiuoja sekmadienių skaičių tarp "DateofSale" ir "System Date". Jis skaičiuos sistemos datą, jei ji patenka į sekmadienį; bet jis neskaičiuoja "DateofSale", net jei jis patenka į sekmadienį. |
| SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; | Grąžina skirtumą tarp sistemos datos ir DateTime kaip valandų skaičių ir rodomas stulpelyje "DaysSinceSale". |
| SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; | Grąžina skirtumą tarp sistemos datos ir DateTime kaip minučių skaičių ir rodomas stulpelyje "DaysSinceSale". |
| SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; | Grąžina skirtumą tarp sistemos datos ir DateTime kaip sekundžių skaičių ir rodomas stulpelyje DaysSinceSale. |
Funkcijos "DateDiff" naudojimas reiškinyje
Funkciją "DateDiff " galite naudoti visur, kur tik galite naudoti reiškinius. Pavyzdžiui, turite formą, kurią naudojate klientų užsakymams vykdyti. Lentelėje Užsakymai yra laukas, pavadintas GautiIki, kuriame yra data, iki kurios klientas turi gauti užsakymą. Funkciją DateDiff galite naudoti teksto lauke formoje, norėdami matyti iki užsakymo išsiuntimo likusį dienų skaičių.
Tarkime, kad bet kurio užsakymo išsiuntimas trunka dešimt dienų, teksto lauko ypatybę Valdiklio šaltinis nustatote taip:
=DateDiff("d", Now(), [Užsakymai].[ GautiIki])-10
Kai atidarote formą formos rodinyje, teksto lauke rodomas iki užsakymo pristatymo likęs dienų skaičius. Jei iki kliento užsakymo gavimo yra likę mažiau nei 10 dienų, skaičius teksto lauke yra neigiamas ir nurodo, kiek dienų vėluosis užsakymas, jei jis bus nedelsiant išsiųstas.
Funkcijos "DateDiff" naudojimas VBA kode
Šiame pavyzdyje naudojama funkcija DateDiff norint parodyti dienų skaičių tarp nurodytos datos ir šiandienos.
Dim TheDate As Date ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg