Returnerer en Variant (langt heltal), der angiver antallet af tidsintervaller mellem to angivne datoer.
Syntaks
DateDiff ( interval, dato1, dato2 [, førsteugedag] [, førsteuge] )
Syntaksen for funktionen DateDiff har disse argumenter:
Argument |
Beskrivelse |
---|---|
interval |
Påkrævet. Strengudtryk, der er det tidsinterval, du bruger til at beregne forskellen mellem dato1 og dato2. |
dato1, dato2 |
Påkrævet. Variant (dato). To datoer, som du vil bruge i beregningen. |
førsteugedag |
Valgfrit. En konstant, der angiver den første dag i ugen. Hvis andet ikke er angivet, antages dette at være søndag. |
førsteuge |
Valgfrit. En konstant, der angiver den første uge i året. Hvis den ikke er angivet, forudsættes den første uge at være den uge, hvor den 1. januar forekommer. |
Indstillinger
Der er følgende indstillinger for intervalargument:
Indstilling |
Beskrivelse |
---|---|
åååå |
År |
k |
Kvartal |
m |
Måned |
y |
Dag i året |
d |
Dag |
w |
Ugedag |
ww |
Uge |
h |
Time |
n |
Minut |
s |
Sekund |
Argumentet førsteugedag har følgende indstillinger:
Konstant |
Værdi |
Beskrivelse |
---|---|---|
vbUseSystem |
0 |
Brug indstillingen NLS API. |
vbSunday |
1 |
Søndag (standard) |
vbMonday |
2 |
Mandag |
vbTuesday |
3 |
Tirsdag |
vbWednesday |
4 |
Onsdag |
vbThursday |
5 |
Torsdag |
vbFriday |
6 |
Fredag |
vbSaturday |
7 |
Lørdag |
Konstant |
Værdi |
Beskrivelse |
---|---|---|
vbUseSystem |
0 |
Brug indstillingen NLS API. |
vbFirstJan1 |
1 |
Start med uge, hvor 1 januar forekommer (standard). |
vbFirstFourDays |
2 |
Start med den første uge, der har mindst fire dage i det nye år. |
vbFirstFullWeek |
3 |
Start med den første hele uge i året. |
Bemærkninger
Du kan bruge funktionen DateDiff til at bestemme, hvor mange angivne tidsintervaller der findes mellem to datoer. Du kan f.eks. bruge DateDiff til at beregne antallet af dage mellem to datoer eller antallet af uger mellem dags dato og slutningen af året.
Hvis du vil beregne antallet af dage mellem dato1 og dato2, kan du bruge enten Dag i året ("y") eller Dag ("d"). Når interval er Ugedag ("w"), returnerer DateDiff antallet af uger mellem de to datoer. Hvis dato1 falder på en mandag, tæller DateDiff antallet af mandage indtil dato2. Den tæller dato2, men ikke dato1. Hvis interval er Uge ("ww"), returnerer funktionen DateDiff antallet af kalenderuger mellem de to datoer. Den tæller antallet af søndage mellem dato1 og dato2. DateDiff tæller dato2, hvis det er en søndag, men den tæller ikke dato1, heller ikke selvom den falder på en søndag.
Hvis dato1 refererer til et senere tidspunkt end dato2, returnerer funktionen DateDiff et negativt tal.
Argumentet førsteugedag påvirker beregninger, der anvender intervalsymbolerne "w" og "ww".
Hvis dato1 eller dato2 er en datokonstant, bliver det angivne år en permanent del af den pågældende dato. Men hvis dato1 eller dato2 er omsluttet af dobbelte anførselstegn (""), og du udelader året, indsættes det aktuelle år i din kode, hver gang udtrykket dato1 eller dato2 evalueres. Det gør det muligt at skrive kode, der kan bruges i forskellige år.
Når du sammenligner 31. december med 1. januar i det efterfølgende år, returnerer DateDiff 1 for År ("åååå"), selvom det kun er én dag.
Bemærk!: Den angivne dato skal være gregoriansk for dato1 og dato2, hvis egenskabsindstillingen Kalender er Gregoriansk. Hvis kalenderen er hijri, skal den angivne dato være hijri.
Eksempler på DateDiff-forespørgsel
Udtryk |
Resultater |
---|---|
SELECT DateDiff("åååå",#01-01-2010#,[DateofSale]) AS Udtryk1 FRA ProduktSalg; |
Returnerer forskellen mellem Dato2 og Dato1 (overvej Dato1 som ældste og Dato2 som nyeste) som antallet af 'År'. Resultat: Forskellen mellem værdierne i feltet "DateofSale" og datoen "01-01-2010" som antal 'År'. |
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer forskellen mellem systemdatoen og "DateofSale" som antal 'Kvartaler' (baseret på kalenderår) og vises i kolonnen "DaysSinceSale". returnerer forskellen mellem systemdatoen og "DateofSale" som antallet af "Måneder" og vises i kolonnen "DaysSinceSale". |
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer forskellen mellem systemdatoen og "DateofSale" som antallet af "Dage" og vises i kolonnen "DaysSinceSale". |
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer forskellen mellem systemdatoen og "DateofSale" som antallet af "Dage" og vises i kolonnen "DaysSinceSale". |
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer forskellen mellem systemdatoen og "DateofSale" som antal 'Hverdage' og vises i kolonnen "DaysSinceSale". Hvis "DateofSale" falder på en mandag, tæller DateDiff antallet af mandage indtil systemdatoen. Den tæller systemdato, men ikke værdien i "DateofSale". |
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer forskellen mellem systemdatoen og "DateofSale" som antal "Kalenderuger" og vises i kolonnen "DaysSinceSale". Den tæller antallet af søndage mellem "DateofSale" og "systemdato". Det tæller systemdatoen, hvis det falder på en søndag. men det tæller ikke "DateofSale", selvom det falder på en søndag. |
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer forskellen mellem systemdatoen og "DateTime" som antallet af "Timer" og vises i kolonnen "DaysSinceSale". |
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer forskellen mellem systemdatoen og "DateTime" som antallet af "Minutter" og vises i kolonnen "DaysSinceSale". |
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Returnerer forskellen mellem systemdatoen og "DateTime" som antal 'sekunder' og vises i kolonnen "DaysSinceSale". |
Eksempel på et udtryk
Brug funktionen DateDiff i et udtryk Du kan bruge funktionen DateDiff , uanset hvor du kan bruge udtryk. Lad os antage, at du har en formular, som du bruger til at indfri kundeordrer. I tabellen Ordrer har du et felt med navnet ReceiveBefore, der indeholder den dato, hvor kunden skal modtage ordren. Du kan bruge funktionen DateDiff med et tekstfelt i formularen til at vise antallet af dage, der er tilbage, før ordren skal afsendes.
Hvis det tager 10 dage at levere en ordre, skal du angive egenskaben Kontrolelementkilde for tekstfeltet således:
=DateDiff(“d”, Nu(), [Ordrer].[ReceiveBefore])-10
Når du åbner formularen i formularvisning, viser tekstfeltet antallet af dage, der er tilbage, før ordren skal afsendes. Hvis der er mindre end 10 dage tilbage, før kunden skal modtage ordren, er tallet i tekstboksen negativt, og det angiver, hvor mange dage ordren kommer for sent, hvis den afsendes straks.
VBA-eksempel
Brug funktionen DateDiff i VBA-kode
I dette eksempel bruges funktionen DateDiff til at vise antallet af dage mellem en given dato og dags dato.
Dim TheDate As Date ' Declare variables.
Dim Msg TheDate = InputBox("Enter a date") Msg = "Days from today: " & DateDiff("d", Now, TheDate) MsgBox Msg