Funktionerne DateAdd, DateDiff og TimeZoneOffset

Gælder for: Lærredsapps Dataverse formelkolonner Skrivebordsflows Modeldrevne apps Power Platform CLI

Tilføjer eller finder forskellen mellem dato/klokkeslætsværdier og konverterer mellem lokal tid og UTC.

Beskrivelse

Funktionen DateAdd føjer et antal enheder til en dato/klokkeslætsværdi. Resultatet er en ny dato/klokkeslætsværdi. Du kan også trække et antal enheder fra en dato/klokkeslætsværdi ved at angive en negativ værdi.

Funktionen DateDiff returnerer forskellen mellem to dato/klokkeslætsværdier. Resultatet er et helt antal enheder.

For begge funktioner kan enheden være TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters eller TimeUnit.Years. Som standard bruger begge funktioner TimeUnit.Days som enhed.

Funktionen TimeZoneOffset returnerer antallet af minutter mellem brugerens lokale tid og UTC (Coordinated Universal Time).

Du kan bruge DateAdd sammen med TimeZoneOffset for at konvertere mellem brugerens lokale tid og UTC (Coordinated Universal Time). Hvis du tilføjer TimeZoneOffset, konverteres et lokalt klokkeslæt til UTC, og hvis du trækker det fra (ved at angive en negativ værdi), konverteres der fra UTC.

Du kan også få flere oplysninger under Datatyperne Date, Time og DateTime og Arbejde med datoer og klokkeslæt.

Syntaks

DateAdd( DateTime, Addition [, Units ] )

  • DateTime – påkrævet. Dato- og klokkeslætsværdi, der skal beregnes.
  • Addition – påkrævet. Et tal, i Units, der skal lægges til DateTime.
  • Units – valgfri. Typen af Enheder der skal tilføjes: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters eller TimeUnit.Years. Hvis du ikke angiver en værdi, bruges TimeUnit.Days.

DateDiff( StartDateTime, EndDateTime [, Units ] )

  • StartDateTime – påkrævet. Startværdien for dato/klokkeslæt.
  • EndDateTime – påkrævet. Slutværdien for dato/klokkeslæt.
  • Units – valgfri. Typen af Enheder der skal tilføjes: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters eller TimeUnit.Years. Hvis du ikke angiver en værdi, bruges TimeUnit.Days.

TimeZoneOffset( [ DateTime ] )

  • DateTime – valgfri. Den dato/klokkeslætsværdi, du vil returnere ændringen for. Som standard bruges den aktuelle dato/klokkeslætsværdi.

Eksempler

I disse eksempler antages det, at dato/klokkeslætsværdien er 15. juli 2013, 13:02.

Enkel DateAdd

Formel Beskrivelse Resultat
Text( DateAdd( Now(), 3 ),
"dd-mm-yyyy hh:mm" )
Lægger tre dage (standardenheden) til den aktuelle dato/klokkeslætsværdi. "18-07-2013 13:02"
Text( DateAdd( Now(), 4, TimeUnit.Hours ),
"dd-mm-yyyy hh:mm" )
Lægger fire timer til den aktuelle dato/klokkeslætsværdi. "15-07-2013 17:02"
Text( DateAdd( Today(), 1, TimeUnit.Months ),
"dd-mm-yyyy hh:mm" )
Lægger en måned til dags dato uden et klokkeslæt, da funktionen Today ikke returnerer et klokkeslæt. "15-08-2013 00:00"
Text( DateAdd( Now(), ‑30, TimeUnit.Minutes ),
"dd-mm-yyyy hh:mm" )
Trækker 30 minutter fra den aktuelle dato/klokkeslætsværdi. "15-07-2013 12:32"

Enkel DateDiff

Formel Beskrivelse Resultat
DateDiff( Now(), DateValue("1/1/2014") ) Returnerer forskellen mellem de to enheder i standardenheden for TimeUnit.Days 170
DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) Returnerer forskellen mellem de to værdier i TimeUnit.Months 6
DateDiff( Now(), Today(), TimeUnit.Minutes ) Returnerer forskellen mellem den aktuelle dato/klokkeslætsværdi og den aktuelle dato (intet klokkeslæt) i antal minutter. Da Now er senere end Today, vil resultatet være negativt. -782

Datoforskelle med resultater i brøkdele

Funktionen DateDiff returnerer kun et helt tal af de enheder, der trækkes fra, og præcisionen angives i den angivne enhed. Hvis du vil beregne forskellen med en højere præcision, skal du bruge en mindre enhed og konvertere resultatet korrekt som i eksemplerne nedenfor.

Formel Beskrivelse Resultat
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) Minutterne/sekunderne ignoreres. Forskellen er baseret ud fra tiden op til hele timer. 1
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 Minutterne bruges i forskellen, og resultatet divideres med 60 for at vise forskellen i timer. 0.5
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 Minutterne og sekunderne bruges i forskellen, og resultatet divideres med 3600 for at vise forskellen i timer. 0.51

Konvertering til UTC

Hvis du vil konvertere til UTC (Coordinated Universal Time), skal du tilføje TimeZoneOffset for det angivne klokkeslæt.

Antag f.eks, at det er den aktuelle dato/klokkeslætsværdi er 15. juli 2013, 13:02 i Pacific Daylight Time (PDT, UTC-7). Hvis du vil se det aktuelle klokkeslæt i UTC, skal du bruge:

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

TimeZoneOffset vil som standard bruge det aktuelle klokkeslæt, så du behøver ikke at angive et argument.

Hvis du vil se resultatet, skal du bruge funktionen Text med formatet dd-mm-yyyy hh:mm, som returnerer 15-07-2013 20:02.

Konvertering fra UTC

Hvis du vil konvertere fra UTC, skal du trække TimeZoneOffset (ved at angive et negativt tal) fra det angivne klokkeslæt.

Antag f.eks., at den aktuelle dato/klokkeslætsværdi i tidszonen UTC er 15. juli 2013, 20:02, og at denne værdi er gemt i variablen StartTime. Hvis du vil ændre klokkeslættet til brugerens tidszone, skal du bruge:

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

Bemærk minustegnet før TimeZoneOffset, som trækker forskydningen fra i stedet for at lægge den til.

Hvis du vil se resultatet, skal du bruge funktionen Text med formatet dd-mm-yyyy hh:mm, som giver resultatet 15-07-2013 13:02, hvis du er i tidszonen Pacific Daylight Time.