Comparteix via


DateAdd, DateDiffi TimeZoneOffset funcions

Funcions S'aplica a
DateAdd
DateDiff
Aplicacions de llenç Copilot Studio Fluxos d'escriptori Columnes de fórmules del Dataverse Aplicacions basades en models CLI del Power Platform Funcions del Dataverse Power Pages
TimeZoneOffset Aplicacions de llenç Copilot Studio Fluxos d'escriptori Aplicacions basades en models CLI del Power Platform Funcions del Dataverse Power Pages
Function S'aplica a
DateAdd
DateDiff
TimeZoneOffset

S'afegeix o es troba la diferència en els valors de data/hora i es converteix entre l'hora local i l'UTC.

Descripció

La DateAdd funció afegeix un nombre d'unitats a un valor de data/hora. El resultat és un nou valor de data/hora. També podeu restar un nombre d'unitats a un valor de data/hora especificant un valor negatiu.

La DateDiff funció retorna la diferència entre dos valors de data i hora. El resultat és un nombre enter d'unitats.

Per a ambdues funcions, les unitats poden ser TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters o TimeUnit.Years. Per defecte, ambdues funcions utilitzen TimeUnit.Days com a unitats.

La TimeZoneOffset funció retorna el nombre de minuts entre l'hora local de l'usuari i UTC (hora universal coordinada).

Podeu utilitzar DateAdd amb el TimeZoneOffset per convertir entre l'hora local de l'usuari i UTC (hora universal coordinada). Afegir TimeZoneOffset convertirà una hora local a UTC, i restar-la (afegint el negatiu) es convertirà d'UTC a hora local.

Vegeu també Tipus de dades Data, Hora i DataHora i Treballar amb dates i hores per obtenir més informació.

Sintaxi

DateAdd( DateTime, Addition [, Units ] )

  • DateTime - Obligatori. Valor de data/hora per operar.
  • Addició : obligatòria. Número, en Unitats, per afegir a DateTime.
  • Unitats - Opcional. El tipus d'unitats que s'han d'afegir : TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters oTimeUnit.Years. Si no s'especifica, s'utilitzen TimeUnit.Days .

DateDiff( StartDateTime, EndDateTime [, Unitats ] )

  • StartDateTime : obligatori. Valor de data i hora d'inici.
  • EndDateTime : obligatori. Valor de data i hora de finalització.
  • Unitats - Opcional. El tipus d'unitats que s'han de restar: TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters oTimeUnit.Years. Si no s'especifica, s'utilitzen TimeUnit.Days .

TimeZoneOffset( [ DataHora ] )

  • DateTime : opcional. Valor de data/hora per al qual es retorna el desplaçament. Per defecte, s'utilitza la data i l'hora actuals.

Exemples

En tots aquests casos, suposem que la data i l'hora actual és el 15 de juliol de 2013, 1:02 de la tarda.

Senzill DateAdd

Fórmula Descripció Resultat
Text( DateAdd( Ara(), 3 ),
"dd-mm-aaaa hh:mm" )
Afegeix tres dies (unitats per defecte) a la data i l'hora actuals. "18-07-2013 13:02"
Text( DateAdd( Ara(), 4, TimeUnit.Hours ),
"dd-mm-aaaa hh:mm" )
Afegiu quatre hores a la data i l'hora actuals. "15-07-2013 17:02"
Text( DateAdd( Avui(), 1, TimeUnit.Months ),
"dd-mm-aaaa hh:mm" )
Afegeix un mes a la data actual, sense hora, ja que Today no retorna un component d'hora. "15-08-2013 00:00"
Text( DateAdd( Ara(), -30, TimeUnit.Minutes ),
"dd-mm-aaaa hh:mm" )
Resta 30 minuts a la data i l'hora actuals. "15-07-2013 12:32"

Senzill DateDiff

Fórmula Descripció Resultat
DateDiff( Now(), DateValue("1/1/2014") ) Retorna la diferència entre les dues unitats de les unitats per defecte de TimeUnit.Days 170
DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) Retorna la diferència entre els dos valors de TimeUnit.Months 6
DateDiff( Ara(), Avui(), TimeUnit.Minutes ) Retorna la diferència entre la data i l'hora actuals i la data actual només (sense hora) en minuts. Atès que Now és posterior a Today, el resultat serà negatiu. -782

Diferència de dates amb resultats fraccionats

La funció DateDiff només retorna un nombre enter de les unitats que es resten, i la precisió es dóna en la unitat especificada. Per calcular la diferència amb una precisió més alta, utilitzeu una unitat més petita i convertiu el resultat adient, com ara als exemples següents.

Fórmula Descripció Resultat
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) Els minuts/segons s'ignoren, la diferència es basa en el temps fins a l'hora. 1
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 Els minuts s'utilitzen en la diferència i el resultat es divideix per 60 per tenir la diferència en hores. 0.5
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 Els minuts i segons s'utilitzen en la diferència; el resultat es divideix per 3600 per tenir la diferència en hores. 0.51

Convertir a UTC

Per convertir a UTC (Temps Universal Coordinat), afegiu el per a l'hora TimeZoneOffset donada.

Per exemple, imagineu que la data i l'hora actual és el 15 de juliol de 2013, 1:02 de la tarda a l'hora d'estiu del Pacífic (PDT, UTC-7). Per determinar l'hora actual en UTC, utilitzeu:

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

TimeZoneOffset per defecte és l'hora actual, de manera que no cal que li passis un argument.

Per veure el resultat, utilitzeu la funció Text amb el format dd-mm-yyyy hh:mm, que retornarà 15-07-2013 20:02.

Convertir des de l'UTC

Per convertir de UTC, resteu el TimeZoneOffset (afegint el negatiu) per al temps donat.

Per exemple, imagineu que la data i l'hora d'UTC del 15 de juliol del 2013 ales 8:02 del vespre s'emmagatzemen en una variable anomenada StartTime. Per ajustar l'hora per al fus horari de l'usuari, utilitzeu:

  • DateAdd( Hora d'inici, −TimeZoneOffset( StartTime ), TimeUnit.Minutes )

Tingueu en compte el signe negatiu abans TimeZoneOffset per restar el desplaçament en lloc d'afegir-lo.

Per veure el resultat, utilitzeu la funció Text amb el format dd-mm-yyyy hh:mm, que resultarà en 15-07-2013 13:02 si sou a l'hora d'estiu del Pacífic.