Die Funktionen „DateAdd“, „DateDiff“ und „TimeZoneOffset“

Gilt: Canvas-Spps Dataverse Formelspalten Desktop-Flows Modellgesteuerte Apps Power Platform CLI

Dienen zum Hinzufügen zu oder Auffinden des Unterschiedes bei Datum-/Uhrzeit-Werten und Konvertieren zwischen Ortszeit und UTC.

Beschreibung

Die DateAdd-Funktion fügt einem Datum/Uhrzeit-Wert eine Anzahl von Einheiten hinzu. Das Ergebnis ist ein neuer Datum/Uhrzeit-Wert. Sie können auch eine Anzahl von Einheiten von einem Datum/Uhrzeit-Wert subtrahieren, indem Sie einen negativen Wert angeben.

Die DateDiff-Funktion gibt die Differenz zwischen zwei Datum/Uhrzeit-Werten zurück. Das Ergebnis ist eine ganze Zahl von Einheiten.

Mögliche Einheiten für beide Funktionen sind TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters oder TimeUnit.Years. Beide Funktionen verwenden standardmäßig TimeUnit.Days als Einheiten.

Die TimeZoneOffset-Funktion gibt die Anzahl der Minuten zwischen Ortszeit des Benutzers und UTC (Coordinated Universal Time) zurück.

Sie können DateAdd mit TimeZoneOffset zum Konvertieren zwischen der Ortszeit des Benutzers und UTC (Coordinated Universal Time) verwenden. Durch Hinzufügen von TimeZoneOffset wird eine Ortszeit in UTC konvertiert, und durch Subtrahieren (Hinzufügen eines negativen Werts) wird UTC in die Ortszeit konvertiert.

Weitere Informationen finden Sie unter Datentypen „date“, „time“ und „datetime“ sowie Arbeiten mit Daten und Uhrzeitangaben.

Syntax

DateAdd( DateTime, Addition [, Units ] )

  • DateTime ‑ Erforderlich: Der zu verarbeitende Datum/Uhrzeit-Wert
  • Addition - Erforderlich. Die DateTime hinzuzufügende Anzahl in Einheiten.
  • Einheiten - Optional. Mögliche Einheiten zum Hinzufügen sind: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters oder TimeUnit.Years. Wenn nicht angegeben, werden TimeUnit.Days verwendet.

DateDiff( StartDateTime, EndDateTime [, Units ] )

  • StartDateTime - Erforderlich. Der Anfangs-Datum/Uhrzeit-Wert
  • EndDateTime - Erforderlich. Der End-Datum/Uhrzeit-Wert
  • Einheiten - Optional. Mögliche Einheiten zum Abziehen sind: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters oder TimeUnit.Years. Wenn nicht angegeben, werden TimeUnit.Days verwendet.

TimeZoneOffset( [ DateTime ] )

  • DateTime - Optional. Datum/Uhrzeit-Wert, für den der Offset zurückgegeben werden soll. Standardmäßig wird der aktuelle Datum/Uhrzeit-Wert verwendet.

Beispiele

Bei allen diesen Beispielen wird davon ausgegangen, dass der Datum/Uhrzeit-Wert der 15. Juli 2013, 13:02 Uhr ist.

Einfache DateAdd-Funktion

Formel Beschreibung Ergebnis
Text( DateAdd( Now(), 3 ),
„dd-mm-yyyy hh:mm“)
Dem aktuellen Datum/Uhrzeit-Wert werden drei Tage (Standardeinheiten) hinzugefügt. "18-07-2013 13:02"
Text( DateAdd( Now(), 4, TimeUnit.Hours ),
„dd-mm-yyyy hh:mm“)
Dem aktuellen Datum/Uhrzeit-Wert werden vier Stunden hinzugefügt. "15-07-2013 17:02"
Text( DateAdd( Today(), 1, TimeUnit.Months ),
„dd-mm-yyyy hh:mm“)
Fügt dem aktuellen Datum einen Monat hinzu. Ohne Uhrzeit als Today wird keine Zeitangabe zurückgegeben. "15-08-2013 00:00"
Text( DateAdd( Now(), ‑30, TimeUnit.Minutes ),
„dd-mm-yyyy hh:mm“)
Subtrahiert 30 Minuten vom dem aktuellen Datum/Uhrzeit-Wert. "15-07-2013 12:32"

Einfache DateDiff-Funktion

Formel Beschreibung Ergebnis
DateDiff( Now(), DateValue("1/1/2014") ) Gibt die Differenz zwischen den zwei Einheiten in der Standardeinheit TimeUnit.Days zurück 170
DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) Gibt die Differenz zwischen den beiden Werten in TimeUnit.Months zurück 6
DateDiff( Now(), Today(), TimeUnit.Minutes ) Gibt die Differenz zwischen dem aktuellen Datum/Uhrzeit-Wert und dem aktuellen Datum nur in Minuten (ohne Uhrzeit) zurück. Da Now (jetzt) später als Today (heute) ist, ist das Ergebnis negativ. -782

Differenz von Datumsangaben mit gebrochenen Ergebnissen

Die Funktion DateDiff gibt nur eine ganze Zahl der Einheiten zurück, die subtrahiert werden, und die Genauigkeit wird in der angegebenen Einheit angegeben. Um die Differenz mit höherer Genauigkeit zu berechnen, verwenden Sie eine kleinere Einheit und rechnen das Ergebnis entsprechend um, wie in den folgenden Beispielen.

Formel Beschreibung Ergebnis
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) Die Minuten/Sekunden werden ignoriert, die Differenz basiert auf der Zeit bis zur vollen Stunde. 1
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 Die Minuten werden in der Differenz verwendet, und das Ergebnis wird durch 60 geteilt, um die Differenz in Stunden zu erhalten. 0.5
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 Die Minuten und Sekunden werden in der Differenz verwendet; das Ergebnis wird durch 3600 geteilt, um die Differenz in Stunden zu erhalten. 0.51

Konvertieren in UTC

Fügen Sie zum Konvertieren in UTC (Coordinated Universal Time) TimeZoneOffset der angegebenen Uhrzeit hinzu.

Angenommen, der aktuelle Datum/Uhrzeit-Wert ist der 15. Juli 2013, 13:02 Uhr in Pacific Daylight Time (PDT, UTC-7). Verwenden Sie zum Bestimmen der aktuellen Uhrzeit in UTC Folgendes:

  • DateAdd( Now(), TimeZoneOffset(), TimeUnit.Minutes )

TimeZoneOffset ist standardmäßig auf die aktuelle Uhrzeit festgelegt, sodass Sie kein Argument dafür übergeben müssen.

Um das Ergebnis anzuzeigen, verwenden Sie die Text-Funktion im Format dd-mm-yyyy hh:mm, die 15-07-2013 20:02 zurückgibt.

Konvertieren aus UTC

Zum Konvertieren aus UTC subtrahieren Sie TimeZoneOffset (durch Hinzufügen eines negativen Werts) von der angegebenen Uhrzeit.

Angenommen, das UTC-Datum und die Uhrzeit 15. Juli 2013, 20:02 Uhr werden in einer Variablen namens StartTime gespeichert. Verwenden Sie zum Anpassen der Zeit für die Zeitzone des Benutzers Folgendes:

  • DateAdd( StartTime, −TimeZoneOffset( StartTime ), TimeUnit.Minutes )

Beachten Sie das negative Vorzeichen vor TimeZoneOffset, damit der Offset subtrahiert und nicht addiert wird.

Um das Ergebnis anzuzeigen, verwenden Sie die Text-Funktion im Format dd-mm-yyyy hh:mm, die 15-07-2013 13:02 in der PDT-Zeit zurückgibt.