Pateikia variantą (ilgą), nurodantį laiko intervalų skaičių tarp dviejų nurodytų datų.
Sintaksė
DateDiff ( intervalas, data1, data2 [, firstdayofweek] [, firstweekofyear] )
Funkcijos DateDiff sintaksė turi tokius argumentus:
Argumentas |
Aprašas |
---|---|
intervalas |
Būtinas. Eilutės reiškinys, kuris yra laiko intervalas, kurį naudojate norėdami apskaičiuoti skirtumą tarp datos1 ir datos2. |
date1, date2 |
Būtinas. Variantas (data). Dvi datos, kurį norite naudoti skaičiuojant. |
firstdayofweek |
Pasirinktinis. konstanta, nurodantis 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 argumentas parametrai:
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ė |
Argumentas firstdayofweek turi šiuos parametrus:
Konstanta |
Reikšmė |
Aprašas |
---|---|---|
vbUseSystem |
0 |
Naudokite NLS API parametrą. |
vbSunday |
1 |
Sekmadienis (numatytasis parametras) |
vbMonday |
2 |
Pirmadienis |
vbTuesday |
3 |
Antradienis |
vbWednesday |
4 |
Trečiadienis |
vbThursday |
5 |
Ketvirtadienis |
vbFriday |
6 |
Penktadienis |
vbSaturday |
7 |
Šeštadienis |
Konstanta |
Reikšmė |
Aprašas |
---|---|---|
vbUseSystem |
0 |
Naudokite NLS API parametrą. |
vbFirstJan1 |
1 |
Pradėkite nuo savaitės, kurią įvyksta sausio 1 d. (numatytoji reikšmė). |
vbFirstFourDays |
2 |
Pradėkite nuo pirmosios savaitės, kuri turi bent keturias dienas naujaisiais metais. |
vbFirstFullWeek |
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ų tarp šiandienos ir metų pabaigos.
Norėdami apskaičiuoti dienų skaičių tarp datos1 ir datos2, galite naudoti arba metų dieną ("y"), arba dieną ("d"). Kai intervalas yra Weekday ("w"), DateDiff grąžina savaičių skaičių tarp šių dviejų datų. Jei data1 yra pirmadienis, DateDiff skaičiuoja pirmadienių skaičių iki datos2. Jis skaičiuoja datą2 , bet ne datą1. Jei intervalas yra Savaitė ("ww"), funkcija DateDiff grąžins kalendoriaus savaičių skaičių tarp šių dviejų datų. Jis skaičiuoja sekmadienių skaičių tarp datos1 ir datos2. DateDiff skaičiuoja datą2 , jei ji yra sekmadienis; bet jis neskaičiuoja datos1, net jei jis yra sekmadienis.
Jei data1 nurodo vėlesnį laiko tašką nei date2, funkcija DateDiff grąžina neigiamą skaičių.
Argumentas firstdayofweek turi įtakos skaičiavimams, kurie naudoja intervalo simbolius "w" ir "ww".
Jei data1 arba data2 yra datos literalas, nurodyti metai tampa tos datos nuolatine dalimi. Tačiau, jei data1 arba data2 yra dvigubose kabutėse (" "), o jūs praleiskite metus, dabartiniai metai įterpiami į kodą kiekvieną kartą, kai įvertinama data1 arba data2 reiškinys. Tai leidžia rašyti kodą, kuris gali būti naudojamas skirtingais metais.
Lyginant gruodžio 31 d. su iškart einančių metų sausio 1 d., DateDiff už metus ("yyyy") pateikia 1, nors praėjo tik diena.
Pastaba: Jei datos1 ir date2 parametras Kalendorius yra Grigaliaus, pateikta data turi būti Grigaliaus. Jei kalendorius yra Hidžros kalendorius, pateikiama data turi būti Hidžri.
DateDiff užklausos pavyzdžiai
Reiškinys |
Rezultatai |
---|---|
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Reiškinys1 FROM ProduktaiPardavimai; |
Grąžina skirtumą tarp Date2 ir Date1 (data1 laikoma seniausia ir Date2 naujausia) kaip metų skaičių. Rezultatas: Skirtumas tarp reikšmių lauke "DateofSale" ir datos "01/01/2010" kaip skaičius "Years". |
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Grąžina skirtumą tarp sistemos datos ir "DateofSale" kaip ketvirčių skaičių (remiantis kalendoriaus metais) ir rodo 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 darbo dienų skaičių ir rodomas stulpelyje "DaysSinceSale". Jei "DateofSale" yra pirmadienis, DateDiff skaičiuoja pirmadienių skaičių iki sistemos datos. Ji 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 "Kalendoriaus savaičių skaičių" ir rodo stulpelyje "DaysSinceSale". Jis skaičiuoja sekmadienių skaičių tarp "DateofSale" ir "system date". Ji skaičiuos sistemos datą, jei ji bus sekmadienis; 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". |
Išraiškos pavyzdys
Funkcijos DateDiff naudojimas reiškinyje Funkciją DateDiff galite naudoti ten, kur galite naudoti reiškinius. Tarkime, turite formą, kurią naudojate kliento užsakymams vykdyti. Lentelėje Užsakymai yra laukas Pavadinimu ReceiveBefore, kuriame yra data, iki kurios klientas turi gauti užsakymą. Galite naudoti funkciją DateDiff su teksto lauku formoje, kad būtų rodomas dienų skaičius, likęs iki užsakymo išsiuntimo.
Jei bet kuris užsakymas išsiunčiamas per dešimt dienų, teksto lauko ypatybę Valdiklio šaltinis galite nustatyti taip:
=DateDiff("d", Now(), [Orders].[ Gauti prieš])-10
Kai atidarote formą formos rodinyje, teksto lauke rodomas dienų skaičius, likęs iki užsakymo išsiuntimo. Jei iki užsakymo gavimo klientui liko mažiau nei 10 dienų, teksto lauke esantis skaičius yra neigiamas ir nurodo, kiek dienų vėluosite į užsakymą, jei jis bus išsiųstas iš karto.
VBA pavyzdys
Funkcijos DateDiff naudojimas VBA kode
Šiame pavyzdyje naudojama funkcija DateDiff , kad būtų rodomas dienų skaičius 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