Applies ToAccess für Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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 MsgTheDate = InputBox("Enter a date")Msg = "Days from today: " & DateDiff("d", Now, TheDate)MsgBox Msg

Siehe auch

Auswählen der richtigen Datumsfunktion

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.