Del via


Funksjonene DateAdd, DateDiff og TimeZoneOffset

Gjelder: Lerretsapper Dataverse-formelkolonner Skrivebordsflyt Modelldrevne apper Power Platform CLI

Legger til eller finner differansen i dato/klokkeslett-verdiene og konverterer mellom lokal tid og UTC.

Beskrivelse

DateAdd-funksjonen legger til et antall enheter i en dato/klokkeslett-verdi. Resultatet er en ny dato/klokkeslett-verdi. Du kan også trekke fra et antall enheter i en dato/klokkeslett-verdi ved å angi en negativ verdi.

DateDiff-funksjonen returnerer differansen mellom to dato/klokkeslett-verdier. Resultatet er et heltall med enheter.

For begge funksjonene kan enhetene være TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters eller TimeUnit.Years. Begge funksjonene bruker som standard TimeUnit.Days som enheter.

TimeZoneOffset-funksjonen returnerer antall minutter mellom brukerens lokaltid og UTC (universaltid).

Du kan bruke DateAdd sammen med TimeZoneOffset til å konvertere mellom brukerens lokaltid og UTC (universaltid). Når du legger til TimeZoneOffset konverteres lokaltid til UTC, og når du trekker fra differansen (legger til med motsatt fortegn), konverteres UTC til lokaltid.

Se også datatypene Date, Time og DateTime og arbeid med datoer og klokkeslett hvis du vil ha mer informasjon.

Syntaks

DateAdd( DateTime, Addition [, Units ] )

  • DateTime - obligatorisk. Dato/klokkeslett-verdier som funksjonen skal arbeide med.
  • Addition - obligatorisk. Tall, i Units, som skal legges til DateTime.
  • Units - valgfritt. For type Enheter som skal legge stil: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters eller TimeUnit.Years. Hvis det ikke er angitt, brukes TimeUnit.Days.

DateDiff( StartDateTime, EndDateTime [, Units ] )

  • StartDateTime - obligatorisk. Dato/klokkeslett-verdi for starttid.
  • EndDateTime - obligatorisk. Dato/klokkeslett-verdi for sluttid.
  • Units - valgfritt. For type Enheter som skal trekkes fra: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters eller TimeUnit.Years. Hvis det ikke er angitt, brukes TimeUnit.Days.

TimeZoneOffset( [ DateTime ] )

  • DateTime - valgfritt. Dato/klokkeslett-verdien som tidsforskjellen skal returneres for. Som standard brukes gjeldende dato/klokkeslett.

Eksempler

I alle disse eksemplene antas det at gjeldende dato og klokkeslett er 15. juli 2013 kl. 13:02.

Enkel DateAdd

Formel Beskrivelse Resultat
Text( DateAdd( Now(), 3 ),
"dd-mm-yyyy hh:mm" )
Legger til tre dager (standardenheter) til gjeldende dato og klokkeslett. "18-07-2013 13:02"
Text( DateAdd( Now(), 4, TimeUnit.Hours ),
"dd-mm-yyyy hh:mm" )
Legg til fire timer til gjeldende dato og klokkeslett. "15-07-2013 17:02"
Text( DateAdd( Today(), 1, TimeUnit.Months ),
"dd-mm-yyyy hh:mm" )
Legger til én måned til gjeldende dato, uten klokkeslett, ettersom Today ikke returnerer noen klokkeslett-komponent. "15-08-2013 00:00"
Text( DateAdd( Now(), ‑30, TimeUnit.Minutes ),
"dd-mm-yyyy hh:mm" )
Trekker fra 30 minutter fra gjeldende dato og klokkeslett. "15-07-2013 12:32"

Enkel DateDiff

Formel Beskrivelse Resultat
DateDiff( Now(), DateValue("1/1/2014") ) Returnerer differansen mellom de to enhetene i standardenheten TimeUnit.Days 170
DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) Returnerer differansen mellom de to verdiene i TimeUnit.Months 6
DateDiff( Now(), Today(), TimeUnit.Minutes ) Returnerer differansen mellom gjeldende dato/klokkeslett og gjeldende dato (uten klokkeslett) i minutter. Siden Now er senere enn Today, vil resultatet være negativt. -782

Forskjellen mellom datoer og delresultater

Funksjonen DateDiff returnerer bare et heltall av enhetene som trekkes fra, og presisjonen angis i den angitte enheten. Hvis du vil beregne forskjellen med høyere presisjon, bruker du en mindre enhet og konverterer resultatet på riktig måte, som i eksemplene nedenfor.

Formel Beskrivelse Resultat
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) Minuttene/sekundene ignoreres, forskjellen er basert på tiden opptil timen. 1
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 Minuttene brukes i forskjellen, og resultatet deles på 60 for å ha forskjellen i timer. 0.5
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 Minuttene og sekundene brukes i forskjellen, og resultatet deles på 3600 for å ha forskjellen i timer. 0.51

Slik konverterer du til UTC

Hvis du vil konvertere til UTC, (Coordinated Universal Time), kan du legge til TimeZoneOffset for det gitte klokkeslettet.

Anta for eksempel at gjeldende dato og klokkeslett er 15. juli 2013 kl. 13:02 i tidssonen Stillehavskysten (PDT, UTC–7). For å fastslå gjeldende klokkeslett i UTC, bruker du følgende:

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

TimeZoneOffset bruker gjeldende klokkeslett som standard, så du ikke trenger å sende det som et argument.

Hvis du vil se resultatet, kan du bruke Text-funksjonen med formatet dd-mm-yyyy hh:mm, som vil returnere 15-07-2013 20:02.

Slik konverterer du fra UTC

Hvis du vil konvertere fra UTC, trekker du fra TimeZoneOffset (ved å legge den til med motsatt fortegn) fra det gitte klokkeslettet.

Anta for eksempel at UTC-datoen og klokkeslettet 15. juli 2013 kl. 20:02 er lagret i en variabel med navnet StartTime. Hvis du vil justere tidspunktet for brukerens tidssone, bruker du følgende:

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

Legg merke til minustegnet før TimeZoneOffset for å trekke fra forskyvningen i stedet for å legge den til.

Hvis du vil se resultatet, kan du bruke Text-funksjonen med formatet dd-mm-yyyy hh:mm, som vil returnere 15-07-2013 13:02.