DateDiff (Funktion)

Gilt für
Access für Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Gibt einen Wert vom Typ Variant (Long) zurück, der die Anzahl der Zeitintervalle zwischen zwei Datumsangaben angibt.

Syntax

DateDiff(interval, date1, date2[, firstdayofweek][, firstweekofyear])

Die DateDiff Funktion weist die folgenden Argumente auf:

Argument Beschreibung
interval Erforderlich. Zeichenfolgenausdruck, der das Zeitintervall darstellt, das Sie zum Berechnen der Differenz zwischen date1 und date2verwenden.
date1, date2 Erforderlich. Variant (Date). Zwei Datumsangaben, die Sie in der Berechnung verwenden möchten.
firstdayofweek Optional. Eine Konstante, die den ersten Tag der Woche angibt. Wenn Sie dies nicht angeben, wird von Sonntag ausgegangen.
firstweekofyear Optional. Eine Konstante, die die erste Woche des Jahres bezeichnet. Wenn Sie dies nicht angeben, ist die erste Woche die Woche, in der der 1. Januar stattfindet.

Einstellungen

Das interval Argument verfügt über die folgenden Einstellungen:

Einstellung Beschreibung
yyyy Jahr
q Quartal
m Monat
y Tag des Jahres
d Tag
w Weekday
ww Woche
h Stunde
n Minute
s Sekunde

Das firstdayofweek Argument verfügt über die folgenden Einstellungen:

Konstante Wert Beschreibung
vbUseSystem 0 Verwendet die NLS-API-Einstellung.
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 Verwendet die NLS-API-Einstellung.
vbFirstJan1 1 Beginnt mit der Woche, in der der 1. Januar stattfindet (Standard).
vbFirstFourDays 2 Beginnt mit der ersten Woche, die mindestens vier Tage im neuen Jahr hat.
vbFirstFullWeek 3 Beginnt mit der ersten vollständigen Woche des Jahres.

Hinweise

Sie können die DateDiff -Funktion verwenden, um zu bestimmen, wie viele angegebene Zeitintervalle zwischen zwei Datumsangaben vorhanden sind. Sie können beispielsweise verwenden DateDiff , um die Anzahl der Tage zwischen zwei Datumsangaben oder die Anzahl der Wochen zwischen heute und dem Ende des Jahres zu berechnen.

Um die Anzahl der Tage zwischen date1 und date2zu berechnen, können Sie entweder Tag des Jahres ("y") oder Tag ("d") verwenden. Wenn interval auf Wochentag ("w") festgelegt ist, DateDiff gibt die Anzahl der Wochen zwischen den beiden Datumsangaben zurück. Wenn date1 auf einen Montag fällt, DateDiff zählt die Anzahl der Montage bis date2. Es zählt date2 , aber nicht date1. Wenn interval week ("ww") ist, gibt die DateDiff Funktion jedoch die Anzahl der Kalenderwochen zwischen den beiden Datumsangaben zurück. Sie 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 date1nicht , auch wenn es auf einen Sonntag fällt.

Wenn date1 auf einen späteren Zeitpunkt als date2verweist, gibt die DateDiff Funktion eine negative Zahl zurück.

Das firstdayofweek Argument wirkt sich auf Berechnungen aus, die die "w" Intervallsymbole und "ww" verwenden.

Wenn date1 oder date2 ein Datumsliteral ist, wird das angegebene Jahr zu einem dauerhaften Bestandteil dieses Datums. Wenn date1 oder date2 jedoch in doppelte Anführungszeichen (" ") eingeschlossen ist und Sie das Jahr auslassen, wird jedes Mal, wenn der Ausdruck oder date2 ausgewertet wird, das date1 aktuelle Jahr in Ihren Code eingefügt. Dies ermöglicht das Schreiben von Code, den Sie in verschiedenen Jahren verwenden können.

Wenn Sie den 31. Dezember mit dem 1. Januar des nächsten Jahres vergleichen, DateDiff wird für Jahr ("yyyy") 1 zurückgegeben, obwohl nur ein Tag vergangen ist.

Hinweis

Wenn die Eigenschaftseinstellung Calendar für date1 und date2gregorianisch ist, muss das angegebene Datum gregorianisch sein. 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("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; Gibt die Differenz zwischen dem Datum 01/01/2010 und den Werten im Feld in DateofSale Jahren zurück.
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Gibt die Differenz in Quartalen basierend auf dem Kalenderjahr zwischen dem Systemdatum und DateofSalezurück und zeigt sie in der DaysSinceSale Spalte an.
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Gibt die Differenz (in Tagen) zwischen dem Systemdatum und DateofSalezurück und zeigt ihn in der DaysSinceSale Spalte an.
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Gibt die Differenz (in Tagen) zwischen dem Systemdatum und DateofSalezurück und zeigt ihn in der DaysSinceSale Spalte an.
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Gibt die Differenz in Wochentagen zwischen dem Systemdatum und DateofSalezurück und zeigt ihn in der DaysSinceSale Spalte an. Wenn DateofSale auf einen Montag fällt, DateDiff zählt die Anzahl der Montags bis zum Systemdatum. Es zählt das Systemdatum, aber nicht den DateofSale Wert.
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Gibt die Differenz zwischen dem Systemdatum und DateofSalein Kalenderwochen zurück und zeigt ihn in der DaysSinceSale Spalte an. Es zählt die Anzahl der Sonntage zwischen DateofSale und dem Systemdatum. Es zählt das Systemdatum, wenn es auf einen Sonntag fällt, aber es zählt DateofSalenicht , auch wenn es auf einen Sonntag fällt.
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Gibt die Differenz zwischen dem Systemdatum und DateTimein Stunden zurück und zeigt sie in der DaysSinceSale Spalte an.
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Gibt die Differenz zwischen dem Systemdatum und DateTimein Minuten zurück und zeigt ihn in der DaysSinceSale Spalte an.
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Gibt die Differenz zwischen dem Systemdatum und DateTimein Sekunden zurück und zeigt ihn in der DaysSinceSale Spalte an.

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 Orders haben Sie ein Feld namens ReceiveBefore , das das Datum enthält, bis zu dem der Kunde die Bestellung erhalten muss. Sie können die DateDiff Funktion mit einem Textfeld auf dem Formular verwenden, um die Anzahl der Tage anzuzeigen, die noch vor dem Versand der Bestellung verbleiben.

Wenn es zehn Tage dauert, eine Bestellung zu versenden, legen Sie die Eigenschaft Steuerelementquelle des Textfelds wie folgt fest:

=DateDiff("d", Now(), [Orders].[ReceiveBefore])-10

Wenn Sie das Formular in der Formularansicht öffnen, zeigt das Textfeld die Anzahl der Tage an, die noch verbleiben, bevor die Bestellung versendet werden muss. Wenn weniger als 10 Tage verbleiben, bis der Kunde die Bestellung erhalten muss, ist die Zahl im Textfeld negativ. Es gibt an, wie viele Tage die Bestellung verspätet ist, wenn Sie sie sofort versenden.

Verwenden der DatDiff-Funktion in VBA-Code

In diesem Beispiel wird die DateDiff -Funktion verwendet, um die Anzahl der Tage zwischen einem bestimmten Datum und heute anzuzeigen.

Dim TheDate As Date  ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg

Siehe auch

Auswählen der richtigen Datumsfunktion