Funktionerne DateAdd, DateDiff og TimeZoneOffset
Funktion | Gælder for: |
---|---|
DatoTilføj | Formelkolonner Dataverse for lærredapps Skrivebordsflow Modelbaserede apps Power Platform CLI |
DateDiff | Formelkolonner Dataverse for lærredapps Skrivebordsflow Modelbaserede apps Power Platform CLI |
Tidszoneforskydning | Lærredapps Skrivebordsflow Modelbaserede 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 [, Enheder ] )
- DateTime – påkrævet. Dato- og klokkeslætsværdi, der skal beregnes.
- Tilføjelse - Påkrævet. Et tal, i Units, der skal lægges til DateTime.
- Enheder - Valgfrit. 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 [, Enheder ] )
- StartDateTime - Påkrævet. Startværdien for dato/klokkeslæt.
- EndDateTime - påkrævet. Slutværdien for dato/klokkeslæt.
- Enheder - Valgfrit. 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 - Valgfrit. 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 |
---|---|---|
Tekst( 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" |
Tekst( 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" |
Tekst( 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("01-01-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 er som standard det aktuelle klokkeslæt, så du behøver ikke at sende det 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.