De functies DateAdd, DateDiff en TimeZoneOffset

Van toepassing op: Canvas-apps Dataverse-formulekolommen Bureaubladstromen Modelgestuurde apps Power Platform CLI

Zoekt het verschil in datum-/tijdwaarden of voegt deze toe en schakelt tussen lokale tijd en UTC.

Beschrijving

De functie DateAdd voegt een aantal eenheden toe aan een datum-/tijdwaarde. Het resultaat is een nieuwe datum/tijd-waarde. U kunt ook een aantal eenheden van een datum-/tijdwaarde aftrekken door een negatieve waarde op te geven.

De functie DateDiff retourneert het verschil tussen twee datum/tijd-waarden. Het resultaat is een geheel getal eenheden.

Voor beide functies kunnen de eenheden TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters of TimeUnit.Years worden gebruikt. Beide functies gebruiken standaard TimeUnit.Days als eenheid.

De functie TimeZoneOffset retourneert het aantal minuten tussen de lokale tijd van de gebruiker en UTC (Coordinated Universal Time).

U kunt DateAdd gebruiken in combinatie met TimeZoneOffset om te schakelen tussen de lokale tijd van de gebruiker en UTC (Coordinated Universal Time). Als u TimeZoneOffset toevoegt, wordt de lokale tijd geconverteerd naar UTC. Als u de TimeZoneOffset aftrekt (negatief getal toevoegen) wordt UTC geconverteerd naar de lokale tijd.

Zie ook gegevenstypen Date, Time en DateTime en werken met datums en tijden voor meer informatie.

Syntaxis

DateAdd( DateTime, Addition [, Units ] )

  • DateTime: vereist. De datum/tijd-waarde waarop de bewerking wordt toegepast.
  • Addition: vereist. Aantal om toe te voegen aan de DateTime in eenheden.
  • Units: optioneel. U kunt de volgende soorten eenheden toevoegen: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters en TimeUnit.Years. Indien u niks opgeeft, wordt TimeUnit.Days gebruikt.

DateDiff( StartDateTime, EndDateTime [, Units ] )

  • StartDateTime: vereist. Datum/tijd-waarde voor start.
  • EndDateTime: vereist. Datum/tijd-waarde voor einde.
  • Units: optioneel. U kunt de volgende soorten eenheden aftrekken: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters en TimeUnit.Years. Indien u niks opgeeft, wordt TimeUnit.Days gebruikt.

TimeZoneOffset( [ DateTime ] )

  • DateTime: optioneel. Datum-/tijdwaarde waarvoor de offset wordt geretourneerd. Standaard wordt de huidige datum en tijd gebruikt.

Voorbeelden

In al deze voorbeelden wordt ervan uitgegaan dat de huidige datum en tijd 15 juli 2013, 13:02 is.

Eenvoudige DateAdd

Formule Beschrijving Resultaat
Text( DateAdd( Now(), 3 ),
"dd-mm-yyyy hh:mm" )
Voegt drie dagen (standaardeenheden) toe aan de huidige datum en tijd. '18-07-2013 13:02'
Text( DateAdd( Now(), 4, TimeUnit.Hours ),
"dd-mm-yyyy hh:mm" )
Voegt vier uur toe aan de huidige datum en tijd. '15-07-2013 17:02'
Text( DateAdd( Today(), 1, TimeUnit.Months ),
"dd-mm-yyyy hh:mm" )
Voegt één maand toe aan de huidige datum, zonder tijd omdat Today geen tijd retourneert. '15-08-2013 00:00'
Text( DateAdd( Now(), ‑30, TimeUnit.Minutes ),
"dd-mm-yyyy hh:mm" )
Trekt 30 minuten af van de huidige datum en tijd. '15-07-2013 12:32'

Eenvoudige DateDiff

Formule Beschrijving Resultaat
DateDiff( Now(), DateValue("1/1/2014") ) Retourneert het verschil tussen de twee eenheden in de standaardeenheid TimeUnit.Days 170
DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) Retourneert het verschil tussen de twee waarden in TimeUnit.Months 6
DateDiff( Now(), Today(), TimeUnit.Minutes ) Retourneert het verschil tussen de huidige datum en tijd en de huidige datum (zonder tijd) in minuten. Aangezien nu later is dan vandaag, is het resultaat negatief. -782

Verschil van datums met fractionele resultaten

De functie DateDiff retourneert alleen een geheel aantal eenheden dat wordt afgetrokken, en de precisie wordt gegeven in de opgegeven eenheid. Om het verschil met een hogere precisie te berekenen, gebruikt u een kleinere eenheid en converteert u het resultaat op de juiste manier, zoals in de onderstaande voorbeelden.

Formule Beschrijving Resultaat
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) De minuten / seconden worden genegeerd, het verschil is gebaseerd op de tijd tot op het uur. 1
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 De minuten worden gebruikt voor het verschil en het resultaat wordt gedeeld door 60 om het verschil in uren te hebben. 0.5
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 De minuten en seconden worden gebruikt voor het verschil en het resultaat wordt gedeeld door 3600 om het verschil in uren te hebben. 0.51

Converteren naar UTC

Als u wilt converteren naar UTC (Coordinated Universal Time), voegt u de TimeZoneOffset voor de opgegeven tijd toe.

Later we er als voorbeeld van uitgaan dat de huidige datum en tijd 15 juli 2013, 13:02 is in Pacific Daylight Time (PDT UTC-7). Om de huidige tijd in UTC te bepalen, gebruikt u:

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

TimeZoneOffset is standaard ingesteld op de huidige tijd, dus u hoeft geen argument te gebruiken.

Als u het resultaat wilt weergeven, gebruikt u de functie Text met de indeling dd-mm-yyyy hh:mm. Hiermee wordt 15-07-2013 20:02 geretourneerd.

Converteren van UTC

Als u wilt converteren van UTC, trekt u de TimeZoneOffset af van de opgegeven tijd (door een negatief getal toe te voegen).

Laten we er als voorbeeld van uitgaan dat UTC-datum en -tijd 15 juli 2013, 20:02 is opgeslagen in een variabele met de naam StartTime. Als u de tijd wilt aanpassen aan de tijdzone van de gebruiker, gebruikt u:

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

Let op het minteken voor de TimeZoneOffset om de offset af te trekken in plaats van toe te voegen.

Als u het resultaat wilt weergeven, gebruikt u de functie Text met de indeling dd-mm-yyyy hh:mm. Hiermee wordt 15-07-2013 13:02 geretourneerd als u zich in de tijdzone Pacific Daylight Time bevindt.