Gibt einen Wert vom Typ "Variante (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, bei dem es sich um das Zeitintervall handelt, das Sie zum Berechnen der Differenz zwischen date1 und date2verwenden. |
date1, date2 |
Erforderlich. Variant (Date). Zwei Datumsangaben, die Sie bei der Berechnung verwenden möchten. |
firstdayofweek |
Optional. Eine Konstante, die den ersten Tag der Woche angibt. Wenn Sie es nicht angeben, wird von einem Sonntag ausgegangen. |
firstweekofyear |
Optional. Eine Konstante, die die erste Woche des Jahres bezeichnet. Wenn Sie es nicht angeben, ist die erste Woche die Woche, in die der 1. Januar fällt. |
Einstellungen
Das interval Argument hat 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 hat 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 die der 1. Januar fällt (Standard). |
vbFirstFourDays |
2 | Beginnt mit der ersten Woche im neuen Jahr, die mindestens vier Tage hat. |
vbFirstFullWeek |
3 | Beginnt mit der ersten vollen Woche des Jahres. |
Hinweise
Sie können die DateDiff Funktion verwenden, um zu bestimmen, wie viele angegebene Zeitintervalle zwischen zwei Datumsangaben liegen. Sie können beispielsweise damit die Anzahl der Tage zwischen zwei Datumsangaben oder die Anzahl der Wochen zwischen heute und Ende des Jahres berechnen DateDiff .
Um die Anzahl der Tage zwischen date1 und date2zu berechnen, können Sie entweder den Tag des Jahres ("y") oder den Tag ("d") verwenden. When interval is Weekday ("w") 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 Montagen bis date2. Es zählt, date2 aber nicht date1. Ist interval jedoch Woche ("ww"), gibt die DateDiff Funktion die Anzahl der Kalenderwochen zwischen den beiden Datumsangaben zurück. It counts the number of Sundays between date1 and 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, bei denen die "w""ww" Symbole und Intervall verwendet werden.
Wenn date1 oder date2 ein Datumsliteral ist, wird das angegebene Jahr ein dauerhafter Bestandteil dieses Datums. Wenn date1 or date2 jedoch in doppelte Anführungszeichen (" ") eingeschlossen ist und Sie das Jahr weglassen, wird das aktuelle Jahr jedes Mal in den Code eingefügt, wenn der date1 Ausdruck oder date2 ausgewertet wird. Dadurch ist es möglich, Code zu schreiben, den Sie in verschiedenen Jahren verwenden können.
Wenn Sie den 31. Dezember mit dem 1. Januar des nächsten Jahres vergleichen, gibt "Jahr" ("yyyy") "1" zurück, DateDiff obwohl nur ein Tag vergangen ist.
Hinweis
Für date1 und date2, wenn die Calendar Eigenschaftseinstellung gregorianisch 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 in Jahren zwischen dem Datum 01/01/2010 und den Werten im DateofSale Feld 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 zwischen Systemdatum und DateofSalein Tagen zurück und zeigt sie in der DaysSinceSale Spalte an. |
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Gibt die Differenz zwischen Systemdatum und DateofSalein Tagen zurück und zeigt sie in der DaysSinceSale Spalte an. |
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Gibt die Differenz zwischen Systemdatum und DateofSalein Wochentagen zurück und zeigt sie in der DaysSinceSale Spalte an. Fällt DateofSale auf einen Montag, DateDiff zählt die Anzahl der Montagen 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 in Kalenderwochen zwischen Systemdatum und DateofSalezurück und zeigt sie 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 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 Systemdatum und DateTimeund in Minuten zurück und zeigt sie in der DaysSinceSale Spalte an. |
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Gibt die Differenz in Sekunden zwischen Systemdatum und DateTimezurück und zeigt sie in der DaysSinceSale Spalte an. |
Verwenden der DatDiff-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 Bestellungen haben Sie ein Feld mit dem Namen ReceiveBefore , das das Datum enthält, bis zu dem der Kunde die Bestellung erhalten muss. Sie können die DateDiff Funktion mit einem Textfeld im Formular verwenden, um die Anzahl der verbleibenden Tage anzuzeigen, bevor die Bestellung versandt werden muss.
Angenommen, es dauert zehn Tage, bis eine Bestellung versandt wird, legen Sie die Eigenschaft Steuerungsquelle 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 verbleibenden Tage an, bevor die Bestellung versandt werden muss. Wenn weniger als 10 Tage verbleiben, bevor der Kunde die Bestellung erhalten muss, ist die Zahl im Textfeld negativ. Sie zeigt an, wie viele Tage verspätet sich die Bestellung befindet, 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