Pateikia variantą (ilgąjį), nurodantį laiko intervalų skaičių tarp dviejų datų.
Sintaksė
DateDiff(interval, date1, date2[, firstdayofweek][, firstweekofyear])
Funkcija DateDiff turi tokius argumentus:
| Argumentas | Aprašas |
|---|---|
interval |
Būtinas. Eilutės išraiška, kuri yra ir laiko intervalas, kurį naudojate skirtumui tarp date1 ir apskaičiuoti date2. |
date1, date2 |
Būtinas. Variantas (data). Dvi datos, kurį norite naudoti skaičiuojant. |
firstdayofweek |
Pasirinktinis. Konstanta, nurodanti pirmąją savaitės dieną. Jei jos nenurodote, ja laikoma sekmadienis. |
firstweekofyear |
Pasirinktinis. Konstanta, nurodanti pirmąją metų savaitę. Jei jos nenurodote, pirma savaitė yra savaitė, kurią yra sausio 1 d. |
Parametrai
Argumentas interval turi tokius parametrus:
| Parametras | Aprašas |
|---|---|
yyyy |
Metai |
q |
Ketvirtis |
m |
Mėnuo |
y |
Metų diena |
d |
Diena |
w |
Weekday |
ww |
Savaitė |
h |
Valandos |
n |
Minutė |
s |
Sekundės |
Argumentas firstdayofweek turi tokius parametrus:
| Konstanta | Reikšmė | Aprašas |
|---|---|---|
vbUseSystem |
0 | Naudojamas NLS API parametras. |
vbSunday |
1 | Sekmadienis (numatytoji reikšmė) |
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 | Naudojamas NLS API parametras. |
vbFirstJan1 |
1 | Prasideda nuo savaitės, kurią yra sausio 1 d. (numatytoji reikšmė). |
vbFirstFourDays |
2 | Prasideda pirmąja savaite, kuri turi mažiausiai keturias naujų metų dienas. |
vbFirstFullWeek |
3 | Prasideda nuo pirmosios visos metų savaitės. |
Pastabos
Galite naudoti DateDiff funkciją nustatyti, kiek nurodytų laiko intervalų yra tarp dviejų datų. Pavyzdžiui, galite suskaičiuoti DateDiff , kiek dienų yra tarp dviejų datų arba savaičių nuo šiandienos iki metų pabaigos.
Norėdami apskaičiuoti, kiek dienų yra tarp date1 ir date2, galite naudoti metų dieną ("y") arba dieną ("d"). Kai interval yra savaitės diena (),"w"DateDiff pateikia savaičių skaičių tarp dviejų datų. Jei date1 patenka į pirmadienį, DateDiff skaičiuoja pirmadienių skaičių iki date2. Tai svarbu, date2 bet ne date1. Tačiau jei interval yra Savaitė ("ww"), DateDiff funkcija grąžina kalendorinių savaičių skaičių tarp dviejų datų. Jis skaičiuoja sekmadienių skaičių tarp date1 ir date2.
DateDiff skaičiuoja, date2 jei jis patenka į sekmadienį, bet neskaičiuoja date1, net jei patenka į sekmadienį.
Jei date1 nurodo vėlesnį laiko tašką nei date2, DateDiff funkcija grąžina neigiamą skaičių.
Šis firstdayofweek argumentas turi įtakos skaičiavimams, kuriuose naudojami intervalo simboliai "w" and "ww" .
Jei date1 data yra raidė arba date2 yra raidinė, nurodyti metai tampa nuolatine tos datos dalimi. Tačiau, jei date1date2 arba yra įtrauktas į dvigubas kabutes ()," " o jūs praleidote metus, dabartiniai metai yra įterpiami į jūsų kodą kiekvieną kartą, kai vertinama išraiška arba date2 išraiškadate1. Tai leidžia parašyti kodą, kurį galite naudoti skirtingais metais.
Lyginant gruodžio 31 d. su kitų metų sausio 1 d., Metai ("yyyy") pateikia 1, DateDiff nors praėjo tik viena diena.
Pastaba
Skirta ir date1date2, jei ypatybės parametras Calendar 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ą metais tarp datos 01/01/2010 ir lauko reikšmių DateofSale . |
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Grąžina skirtumą ketvirčiais, pagrįstais kalendoriniais metais, tarp sistemos datos ir DateofSale, ir rodo jį DaysSinceSale stulpelyje. |
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Grąžina skirtumą dienomis tarp sistemos datos ir DateofSale, ir rodo jį DaysSinceSale stulpelyje. |
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Grąžina skirtumą dienomis tarp sistemos datos ir DateofSale, ir rodo jį DaysSinceSale stulpelyje. |
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Grąžina skirtumą tarp sistemos datos ir DateofSale, išreikštą savaitės DaysSinceSale dienomis, ir rodo jį stulpelyje. Jei DateofSale patenka į pirmadienį, DateDiff skaičiuoja pirmadienių skaičių iki sistemos datos. Skaičiuojama sistemos data, bet ne reikšmė.DateofSale |
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Grąžina skirtumą kalendorinėmis savaitėmis tarp sistemos datos ir DateofSale, ir rodo jį DaysSinceSale stulpelyje. Jis skaičiuoja sekmadienių skaičių nuo DateofSale sistemos datos. Jis skaičiuoja sistemos datą, jei ji patenka į sekmadienį, bet neskaičiuoja DateofSale, net jei jis patenka į sekmadienį. |
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Grąžina sistemos datos ir DateTimebei rodo skirtumą valandomis ir rodo jį DaysSinceSale stulpelyje. |
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Grąžina skirtumą minutėmis tarp sistemos datos ir DateTime, ir rodo jį DaysSinceSale stulpelyje. |
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Grąžina sistemos datos ir DateTime, skirtumą sekundėmis ir rodo jį DaysSinceSale stulpelyje. |
Funkcijos "DateDiff" naudojimas reiškinyje
Funkciją galite naudoti DateDiff visur, kur tik galite naudoti reiškinius. Pavyzdžiui, turite formą, kurią naudojate klientų užsakymams vykdyti. Lentelėje Užsakymai yra pavadintas ReceiveBefore laukas, kuriame yra data, iki kurios klientas turi gauti užsakymą. Funkciją galite naudoti DateDiff formos teksto lauke, norėdami matyti iki užsakymo išsiuntimo likusį dienų skaičių.
Tarkime, kad bet kurio užsakymo išsiuntimas trunka dešimt dienų, nustatykite teksto lauko ypatybę Valdiklio šaltinis taip:
=DateDiff("d", Now(), [Orders].[ReceiveBefore])-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. Jame nurodoma, kiek dienų vėluosis užsakymas, jei jį iš karto išsiųsite.
Funkcijos "DateDiff" naudojimas VBA kode
Šiame pavyzdyje naudojama DateDiff funkcija dienų skaičiui tarp nurodytos datos ir šiandienos rodyti.
Dim TheDate As Date ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg