DateDiff-Funktion
Gibt eine Variante ( Long ) zurück, die die Anzahl der Zeitintervalle zwischen zwei angegebenen Daten angibt.
Syntax
DateDiff ( Intervall, Datum1, Datum2 [ , ersterWochentag ] [ , ersteWochedesJahres ] )
Die Syntax der DateDiff- Funktion hat die folgenden Argumente:
Tipp: In Access 2010 verfügt der Ausdrucks-Generator über IntelliSense, sodass Sie sehen können, welche Argumente Ihr Ausdruck erfordert.
Streit | Beschreibung |
Intervall | Erforderlich. Zeichenfolgenausdruck, der das Zeitintervall darstellt, das Sie verwenden, um die Differenz zwischen date1 und date2 zu berechnen. |
Datum1 , Datum2 | Erforderlich. Variante ( Datum ). Zwei Daten, die Sie in der Berechnung verwenden möchten. |
erster Tag der Woche | Optional. Eine Konstante, die den ersten Tag der Woche angibt. Wenn nicht angegeben, wird Sonntag angenommen. |
erste Woche des Jahres | Optional. Eine Konstante, die die erste Woche des Jahres angibt. Wenn nicht anders angegeben, wird angenommen, dass die erste Woche die Woche ist, in der der 1. Januar liegt. |
Einstellungen
Das Intervallargument hat diese Einstellungen:
Einstellung | Beschreibung |
jjjj | Jahr |
q | Quartal |
m | Monat |
j | Tag des Jahres |
d | Tag |
w | Wochentag |
ww | Woche |
h | Stunde |
n | Minute |
s | Zweite |
Das Argument firstdayofweek hat diese Einstellungen:
Konstante | Wert | Beschreibung |
vbUseSystem | 0 | Verwenden Sie die NLS-API-Einstellung. |
vbSonntag | 1 | Sonntag (Standard) |
vbMontag | 2 | Montag |
vbDienstag | 3 | Dienstag |
vbMittwoch | 4 | Mittwoch |
vbDonnerstag | 5 | Donnerstag |
vbFreitag | 6 | Freitag |
vbSamstag | 7 | Samstag |
Konstante | Wert | Beschreibung |
vbUseSystem | 0 | Verwenden Sie die NLS-API-Einstellung. |
vbFirstJan1 | 1 | Beginnen Sie mit der Woche, in der der 1. Januar liegt (Standard). |
vbFirstFourDays | 2 | Beginnen Sie mit der ersten Woche, die mindestens vier Tage im neuen Jahr hat. |
vbErsteVolleWoche | 3 | Beginnen Sie mit der ersten vollen Woche des Jahres. |
Bemerkungen
Sie können die DateDiff- Funktion verwenden, um zu bestimmen, wie viele angegebene Zeitintervalle zwischen zwei Datumsangaben liegen. Beispielsweise können Sie DateDiff verwenden, um die Anzahl der Tage zwischen zwei Datumsangaben oder die Anzahl der Wochen zwischen heute und dem Jahresende zu berechnen.
Um die Anzahl der Tage zwischen date1 und date2 zu berechnen, können Sie entweder Day of year ("y") oder Day ("d") verwenden. Wenn das Intervall Wochentag ("w") ist, gibt DateDiff die Anzahl der Wochen zwischen den beiden Datumsangaben zurück. Wenn date1 auf einen Montag fällt, zählt DateDiff die Anzahl der Montage bis date2 . Es zählt date2 , aber nicht date1 . Wenn das Intervall 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 nicht date1 , selbst wenn es auf einen Sonntag fällt.
Bezieht sich date1 auf einen späteren Zeitpunkt als date2 , gibt die Funktion DateDiff eine negative Zahl zurück.
Das Argument firstdayofweek wirkt sich auf Berechnungen aus, die die Intervallsymbole „w" und „ww" verwenden.
Wenn Datum1 oder Datum2 ein Datumsliteral ist, wird das angegebene Jahr zu einem festen Bestandteil dieses Datums. Wenn Datum1 oder Datum2 jedoch in doppelte Anführungszeichen (" ") eingeschlossen sind und Sie das Jahr weglassen, wird das aktuelle Jahr jedes Mal in Ihren Code eingefügt, wenn der Datum1- oder Datum2 -Ausdruck ausgewertet wird. Dadurch ist es möglich, Code zu schreiben, der in verschiedenen Jahren verwendet werden kann.
Beim Vergleich des 31. Dezember mit dem 1. Januar des unmittelbar folgenden Jahres gibt DateDiff für Year ("yyyy") 1 zurück, obwohl nur ein Tag vergangen ist.
Hinweis: Wenn für date1 und date2 die Eigenschaft Calendar auf gregorianischen Wert eingestellt ist, muss das angegebene Datum gregorianische sein. Wenn der Kalender Hijri ist, muss das angegebene Datum Hijri sein.
Beispiele für DateDiff-Abfragen
Ausdruck | Ergebnisse |
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; | Gibt die Differenz zwischen Datum2 und Datum1 (betrachten Sie Datum1 als das älteste und Datum2 als das neueste) als Anzahl von 'Jahren' 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 "Quarters" (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 der „Wochentage" 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 der „Kalenderwochen" zurück und wird in der Spalte „DaysSinceSale" angezeigt. Es zählt die Anzahl der Sonntage zwischen „DateofSale" und „Systemdatum". Es zählt das Systemdatum, wenn es auf einen Sonntag fällt; aber es zählt "DateofSale" nicht, 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 "Hours" 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 "Minuten" 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. |
Ausdrucksbeispiel
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 auszuführen. In der Tabelle „Bestellungen" gibt es 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 auf dem Formular verwenden, um die Anzahl der verbleibenden Tage anzuzeigen, bevor die Bestellung versendet werden muss.
Unter der Annahme, dass der Versand einer Bestellung zehn Tage dauert, legen Sie die Control Source -Eigenschaft des Textfelds wie folgt fest:
=DateDiff("d", Now(), [Bestellungen].[ReceiveBefore])-10
Wenn Sie das Formular in der Formularansicht öffnen, zeigt das Textfeld die Anzahl der verbleibenden Tage an, bevor die Bestellung versendet werden muss. Wenn weniger als 10 Tage verbleiben, bevor der Kunde die Bestellung erhalten muss, ist die Zahl im Textfeld negativ und gibt an, wie viele Tage die Bestellung verspätet ist, wenn sie sofort versendet wird.
VBA-Beispiel
Verwenden Sie die DateDiff- Funktion im VBA-Code
In diesem Beispiel wird die DateDiff- Funktion verwendet, um die Anzahl der Tage zwischen einem bestimmten Datum und dem heutigen Tag anzuzeigen.
Dim TheDate As Date ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg
No comments:
Post a Comment