A két dátum közötti időintervallumok számát meghatározó Variant (Long) értéket ad eredményül.
Szintaxis
DateDiff(interval, date1, date2[, firstdayofweek][, firstweekofyear])
A DateDiff függvény argumentumai a következők:
| argumentumok | Leírás |
|---|---|
interval |
Kötelező megadni. Karakterlánc-kifejezés, amely a és date2közötti date1 különbség kiszámításához használt időtartomány. |
date1, date2 |
Kötelező megadni. Variant (dátum). A számításhoz használni kívánt két dátum. |
firstdayofweek |
Nem kötelező. A hét első napját megadó állandó. Ha nem adja meg, a rendszer vasárnap használatát feltételezi. |
firstweekofyear |
Nem kötelező. Az év első hetét megadó állandó. Ha nem adja meg, akkor az első hét az a hét, amelyben január 1-je szerepel. |
Beállítások
Az interval argumentum beállításai a következők:
| Beállítás | Leírás |
|---|---|
yyyy |
Év |
q |
Negyedév |
m |
Hónap |
y |
Év napja |
d |
Nap |
w |
Hétköznap |
ww |
Hét |
h |
Óra |
n |
Perc |
s |
Másodperc |
Az firstdayofweek argumentum beállításai a következők:
| Állandó | Érték | Leírás |
|---|---|---|
vbUseSystem |
0 | Az NLS API beállítást használja. |
vbSunday |
1 | Vasárnap (alapértelmezett) |
vbMonday |
2 | hétfő |
vbTuesday |
3 | Kedd |
vbWednesday |
4 | Szerda |
vbThursday |
5 | Csütörtök |
vbFriday |
6 | Péntek |
vbSaturday |
7 | Szombat |
| Állandó | Érték | Leírás |
|---|---|---|
vbUseSystem |
0 | Az NLS API beállítást használja. |
vbFirstJan1 |
1 | Azzal a héttel kezdődik, amelybe január 1. esik (alapértelmezett). |
vbFirstFourDays |
2 | Az első héttel kezdődik, amelynek legalább négy napja az új évben van. |
vbFirstFullWeek |
3 | Az év első teljes hetével kezdődik. |
Megjegyzések
A DateDiff függvény segítségével megállapítható, hogy a két dátum között hány telik el a megadott időintervallumból. Így például DateDiff kiszámítható a két dátum közötti napok száma vagy a mai nap és az év vége közötti hetek száma.
Az és date2közötti date1 napok számának kiszámításához használhatja az év napja ("y") és a nap ("d") elemet.
interval When is Weekday ("w"), DateDiff a két dátum közötti hetek számát adja eredményül. Ha date1 hétfőre esik, akkor DateDiff a függvény megszámolja a hétfők számát addig date2. Számít, date2 de nem date1. Ha interval azonban Hét ("ww"), akkor a DateDiff függvény a két dátum közötti naptári hetek számát adja eredményül. Megszámolja a és a date2közötti vasárnapok date1 számát.
DateDiff azt date2 számolja, ha vasárnapra esik, de nem számít date1, még akkor sem, ha vasárnapra esik.
Ha date1 későbbi, mint , date2akkor a DateDiff függvény negatív számot ad eredményül.
Az firstdayofweek argumentum hatására az és az "ww" intervallum szimbólumot használó "w" számítások végezhetők el.
Ha date1date2 vagy dátumkonstans, akkor a megadott év a dátum állandó része lesz.
date1
date2 Ha azonban az or idézőjelek ()" " közé van zárva, és elhagyja az évet, a vagy kifejezés minden date1date2 kiértékelésekor az aktuális év kerül be a kódba. Így írhat olyan kódot, amelyet különböző években is használhat.
Ha december 31-ét a következő év január 1-jével hasonlítja össze, az DateDiff Év ("yyyy") esetében az eredmény 1 lesz, pedig csak egy nap telt el.
Megjegyzés
Ha date1date2a tulajdonság beállítása Calendar Gergely-naptár szerint, a megadott dátumnak Gergely-naptár szerintinek kell lennie. Iszlám naptár használata esetén a megadott dátumnak az iszlám naptár szerintinek kell lennie.
Példák a DateDiff lekérdezésre
| Expression (Kifejezés) | Eredmény: |
|---|---|
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; |
A dátum 01/01/2010 és a mezőben DateofSale megadott értékek közötti különbséget adja meg évben. |
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
A rendszer dátuma és DateofSalea naptári év alapján megadott negyedévek közötti különbséget adja eredményül, és megjeleníti az oszlopban DaysSinceSale . |
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
A rendszerdátum és a DateofSale, érték közötti különbséget adja vissza napban, és megjeleníti az oszlopban DaysSinceSale . |
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
A rendszerdátum és a DateofSale, érték közötti különbséget adja vissza napban, és megjeleníti az oszlopban DaysSinceSale . |
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
A rendszerdátum és a DateofSale, érték közötti különbséget adja vissza hétköznapokban, majd megjeleníti az oszlopban DaysSinceSale . Ha DateofSale hétfőre esik, akkor DateDiff a rendszer dátumáig hátralévő hétfők száma lesz. A rendszer dátumát számolja, de az DateofSale értéket nem. |
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
A rendszerdátum és a DateofSale, közötti különbséget adja meg naptári hetekben, és megjeleníti az oszlopban DaysSinceSale . Megszámolja a rendszerdátum közötti vasárnapok DateofSale számát. Ha az vasárnapra esik, számolja a rendszer dátumát, de nem számít DateofSale, még akkor sem, ha vasárnapra esik. |
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
A rendszerdátum és a DateTime, érték közötti különbséget adja meg órában, és megjeleníti az oszlopban DaysSinceSale . |
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
A rendszerdátum és a DateTime, érték közötti különbséget adja meg percben, és megjeleníti az oszlopban DaysSinceSale . |
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
A rendszerdátum és a DateTime, közötti különbséget adja meg másodpercben, és megjeleníti az oszlopban DaysSinceSale . |
A DateDiff függvény használata kifejezésekben
A függvényt DateDiff bárhol használhatja, ahol kifejezéseket használhat. Tegyük fel például, hogy van egy űrlapja, amellyel a vevők rendeléseit rögzíti. A Rendelések táblában található egy mező ReceiveBefore , mely azt a dátumot tartalmazza, ameddig a vevőnek meg kell kapnia a rendelését. A DateDiff függvényt használhatja egy szövegmezővel az űrlapon a rendelés feladásához rendelkezésre álló napok számának megjelenítésére.
Ha a megrendelések kiszállítása tíz napot vesz igénybe, állítsa a szövegmező Mező vagy kifejezés tulajdonságát a következőre:
=DateDiff("d", Now(), [Orders].[ReceiveBefore])-10
Amikor megnyitja az űrlapot Űrlap nézetben, a szövegmező megjeleníti, hogy hány nap áll a rendelkezésére a rendelés feladására. Ha a vevőnek 10 napnál rövidebb idő alatt kell megkapnia a rendelését, akkor a szövegmezőben negatív szám jelenik meg. Azt jelzi, hogy azonnali szállítás esetén hány nap késéssel fog megérkezni a rendelés.
A DateDiff függvény használata VBA-kódban:
Ebben a példában a DateDiff függvény megjeleníti egy adott nap és a mai nap közötti napok számát.
Dim TheDate As Date ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg