Tuesday, May 3, 2022

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

Wählen Sie die richtige Datumsfunktion

No comments:

Post a Comment