Gibt einen Wert des Typs Variant (Long) zurück, der die Anzahl der Zeitintervalle zwischen zwei angegebenen Datumswerten angibt.
Syntax
DateDiff ( Intervall, Datum1, Datum2 [, ErsterTagDerWoche] [, ErsteWocheDesJahres] )
Die Syntax der Funktion DateDiff weist die folgenden Argumente auf:
Argument |
Beschreibung |
---|---|
Intervall |
Erforderlich. Zeichenfolgenausdruck, der das Zeitintervall darstellt, das zum Berechnen der Differenz zwischen Datum1 und Datum2 verwendet wird. |
Datum1, Datum2 |
Erforderlich. Variant (Date). Zwei Datumsangaben, die Sie in der Berechnung verwenden möchten. |
ErsterTagDerWoche |
Optional. Eine Konstante, die den ersten Tag der Woche bezeichnet. Sofern nicht anders angegeben, wird "Sonntag" vorausgesetzt. |
ErsteWocheDesJahres |
Optional. Eine Konstante, die die erste Woche des Jahres bezeichnet. Wenn nicht angegeben, wird davon ausgegangen, dass die erste Woche die Woche ist, in der der 1. Januar stattfindet. |
Einstellungen
Das Intervall-Argument weist die folgenden Einstellungen auf:
Einstellung |
Beschreibung |
---|---|
yyyy |
Jahr |
q |
Quartal |
m |
Monat |
y |
Tag des Jahres |
d |
Tag |
w |
Wochentag |
ww |
Woche |
h |
Stunde |
n |
Minute |
s |
Sekunde |
Das ErsterTagDerWoche-Argument weist die folgenden Einstellungen auf:
Konstante |
Wert |
Beschreibung |
---|---|---|
vbUseSystem |
0 |
NLS API-Einstellung verwenden. |
vbSunday |
1 |
Sonntag (Standard) |
vbMonday |
2 |
Montag |
vbTuesday |
3 |
Dienstag |
vbWednesday |
4 |
Mittwoch |
vbThursday |
5 |
Donnerstag |
vbFriday |
6 |
Freitag |
vbSaturday |
7 |
Samstag |
Konstante |
Wert |
Beschreibung |
---|---|---|
vbUseSystem |
0 |
NLS API-Einstellung verwenden. |
vbFirstJan1 |
1 |
Mit der Woche beginnen, in die der 1. Januar fällt (Standard). |
vbFirstFourDays |
2 |
Mit der ersten Woche beginnen, die mindestens vier Tage des neuen Jahres enthält. |
vbFirstFullWeek |
3 |
Mit der ersten vollen Woche des Jahres beginnen. |
Hinweise
Sie können die DateDiff-Funktion verwenden, um zu ermitteln, wie viele angegebene Zeitintervalle zwischen zwei Datumsangaben vorhanden sind. Beispielsweise können Sie mit DateDiff die Anzahl von Tagen zwischen zwei Datumsangaben oder die Anzahl von Wochen zwischen dem heutigen Datum und dem Jahresende berechnen.
Um die Anzahl der Tage zwischen date1 und date2 zu berechnen, können Sie entweder Tag des Jahres ("y") oder Tag ("d") verwenden. Wenn interval den Wert Weekday ("w") hat, gibt DateDiff die Anzahl der Wochen zwischen den beiden Datumsangaben zurück. Wenn date1 auf einen Montag fällt, zählt DateDiff die Anzahl von Montagen bis datum2. Es zählt date2 , aber nicht date1. Wenn interval jedoch Week ("ww") ist, gibt die DateDiff-Funktion die Anzahl der Kalenderwochen zwischen den beiden Datumsangaben zurück. Es zählt die Anzahl der Sonntage zwischen date1 und date2. DateDiff zählt date2 , wenn es auf einen Sonntag fällt; aber es zählt date1 nicht, auch wenn es auf einen Sonntag fällt.
Wenn Datum1 auf einen späteren Zeitpunkt als Datum2 verweist, gibt die DateDiff-Funktion eine negative Zahl zurück.
Das ErsterTagDerWoche-Argument beeinflusst Berechnungen, bei denen die Intervallsymbole "w" und "ww" verwendet werden.
Wenn Datum1 oder Datum2 ein Datumsliteral ist, wird das angegebene Jahr zu einem dauerhaften Teil dieses Datums. Wenn Datum1 oder Datum2 jedoch in Anführungszeichen (" ") eingeschlossen ist und Sie das Jahr weglassen, wird immer dann, wenn der Datum1 oder Datum2-Ausdruck ausgewertet wird, das aktuelle Jahr in den Code eingefügt. Dadurch können Sie Code schreiben, der in verschiedenen Jahren verwendet werden kann.
Wenn der 31. Dezember mit dem 1. Januar des unmittelbar folgenden Jahrs verglichen wird, gibt DateDiff für das Jahr ("yyyy") den Wert "1" zurück, obwohl nur ein Tag vergangen ist.
Hinweis: Das für Datum1 oder Datum2 angegebene Datum muss ein gregorianisches Datum sein, wenn die Einstellung der Calendar-Eigenschaft dem gregorianischen Kalender entspricht. Wenn es sich um einen Hijri-Kalender handelt, muss das angegebene Datum ein Hijri-Datum sein.
Beispiele für DateDiff-Abfragen
Ausdruck |
Ergebnisse |
---|---|
SELECT DateDiff("jjjj",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; |
Gibt die Differenz zwischen Date2 und Date1 (Datum1 als älteste und Datum2 als neueste betrachten) als Anzahl von "Years" zurück. Ergebnis: Differenz zwischen den Werten im Feld "DateofSale" und dem Datum "01.01.2010" als Anzahl von "Years". |
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Gibt die Differenz zwischen dem Systemdatum und "DateofSale" als Anzahl von "Quartalen" (basierend auf dem Kalenderjahr) zurück und wird in der Spalte "DaysSinceSale" angezeigt. gibt die Differenz zwischen dem Systemdatum und "DateofSale" als Anzahl von "Monaten" zurück und wird in der Spalte "DaysSinceSale" angezeigt. |
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Gibt die Differenz zwischen dem Systemdatum und "DateofSale" als Anzahl von "Days" zurück und wird in der Spalte "DaysSinceSale" angezeigt. |
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Gibt die Differenz zwischen dem Systemdatum und "DateofSale" als Anzahl von "Days" zurück und wird in der Spalte "DaysSinceSale" angezeigt. |
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Gibt die Differenz zwischen dem Systemdatum und "DateofSale" als Anzahl von "Wochentagen" zurück und wird in der Spalte "DaysSinceSale" angezeigt. Wenn "DateofSale" auf einen Montag fällt, zählt DateDiff die Anzahl der Montage bis zum Systemdatum. Es zählt das Systemdatum, aber nicht den Wert in "DateofSale". |
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Gibt die Differenz zwischen dem Systemdatum und "DateofSale" als Anzahl von "Kalenderwochen" zurück und wird in der Spalte "DaysSinceSale" angezeigt. Es zählt die Anzahl der Sonntage zwischen "DateofSale" und "Systemdatum". Es wird das Systemdatum gezählt, wenn es auf einen Sonntag fällt; "DateofSale" wird jedoch nicht gezählt, auch wenn es auf einen Sonntag fällt. |
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Gibt die Differenz zwischen dem Systemdatum und "DateTime" als Anzahl von "Stunden" zurück und wird in der Spalte "DaysSinceSale" angezeigt. |
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Gibt die Differenz zwischen dem Systemdatum und "DateTime" als Anzahl von "Minutes" zurück und wird in der Spalte "DaysSinceSale" angezeigt. |
SELECT DateDiff("s";[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Gibt die Differenz zwischen dem Systemdatum und "DateTime" als Anzahl von "Sekunden" zurück und wird in der Spalte "DaysSinceSale" angezeigt. |
Ausdruck (Beispiel)
Verwenden der DateDiff-Funktion in einem Ausdruck Sie können die DateDiff-Funktion überall dort verwenden, wo Sie Ausdrücke verwenden können. Angenommen, Sie haben ein Formular, das Sie verwenden, um Kundenbestellungen zu erledigen. In der Tabelle für Bestellungen (Orders) haben Sie ein Feld namens "ReceiveBefore", das das Datum enthält, bis zu dem die Bestellung beim Kunden eingetroffen sein muss. Sie können die DateDiff-Funktion mit einem Textfeld auf dem Formular verwenden, um die Anzahl von Tagen anzuzeigen, die verbleiben, bevor die Bestellung geliefert werden muss.
Wenn das Liefern einer Bestellung beispielsweise zehn Tage dauert, legen Sie die Steuerelementinhalt-Eigenschaft des Textfelds wie folgt fest:
=DateDiff("d", Now(), [Orders].[ReceiveBefore])-10
Wenn Sie das Formular in der Formularansicht öffnen, wird im Textfeld die Anzahl von Tagen angezeigt, die verbleiben, bevor die Bestellung geliefert werden muss. Wenn weniger als 10 Tage verbleiben, bevor die Bestellung beim Kunden eingetroffen sein muss, ist die Zahl im Textfeld negativ und gibt an, wie viele Tage die Bestellung später eintrifft, wenn sie sofort geliefert wird.
VBA-Beispiel
Verwenden der DatDiff-Funktion in VBA-Code
In diesem Beispiel wird die DateDiff-Funktion verwendet, um die Anzahl von Tagen anzuzeigen, die zwischen dem jeweils angegebenen Datum und heute liegen.
Dim TheDate As Date ' Declare variables.
Dim Msg TheDate = InputBox("Enter a date") Msg = "Days from today: " & DateDiff("d", Now, TheDate) MsgBox Msg