Partajați prin


DateAdd, DateDiffși TimeZoneOffset funcții

Funcţii Se aplică la
DateAdd
DateDiff
Aplicațiile Pânză Copilot Studio Desktop fluxurilor de dateVerse coloane de formule Model aplicații bazate pe platforma Power Platform CLI Dataverse funcții Power Pages
TimeZoneOffset Aplicații pânză Copilot Studio Desktop fluxuri model aplicații bazate pe modele Power Platform ClI Dataverse funcții Power Pages
Funcţie Se aplică la
DateAdd
DateDiff
TimeZoneOffset

Adaugă sau găsește diferența dintre valorile dată/oră și convertește între ora locală și UTC.

Descriere

Funcția DateAdd adună un număr de unități la o valoare dată/oră. Rezultatul este o nouă valoare dată/oră. De asemenea, puteți scădea un număr de unități dintr-o valoare dată/oră specificând o valoare negativă.

Funcția DateDiff returnează diferența dintre două valori dată/oră. Rezultatul este un număr întreg de unități.

Pentru ambele funcții, unitățile pot fi TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, Ti meUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters, sau TimeUnit.Years. În mod implicit, ambele funcții folosesc TimeUnit.Days ca unități.

Funcția TimeZoneOffset returnează numărul de minute dintre ora locală a utilizatorului și UTC (Timpul universal).

Puteți utiliza DateAdd cu scopul de TimeZoneOffset a efectua conversia între ora locală a utilizatorului și UTC (Ora universală). Adăugarea TimeZoneOffset va converti o oră locală în UTC și o va scădea (adăugând negativul) se va transforma din UTC în oră locală.

Consultați, de asemenea, Tipurile de date Data, Ora și DateTime și lucrarea cu date și ore pentru mai multe informații.

Sintaxă

DateAdd( DateTime, Adunare [, Unități ] )

  • DateTime - Obligatoriu. Valoarea Data/Oră pentru a funcționa.
  • Adăugare - Obligatoriu. Număr, în Unități, pentru a adăuga la DateTime.
  • Unități - Opțional. Tipul de Unități la adăugați: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, T imeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters, sau TimeUnit.Years. Dacă nu este specificat, sunt folosite TimeUnit.Days .

DateDiff( StartDateTime, EndDateTime [, Unități ] )

  • StartDateTime - Obligatoriu. Valoare dată/oră de pornire.
  • EndDateTime - Obligatoriu. Valoare dată/oră de sfârșit.
  • Unități - Opțional. Tipul de Unități la scade: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUn it.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters, sau TimeUnit.Years. Dacă nu este specificat, sunt folosite TimeUnit.Days .

TimeZoneOffset( [ DateTime ] )

  • DateTime - Opțional. Data/ora pentru care să returneze decalajul. În mod implicit, se folosește data/ora curentă.

Exemple

În toate aceste exemple, să presupunem că data și ora curentă sunt 15 iulie 2013, 13:02.

Simplu DateAdd

Formulă Descriere Rezultat
Text( DateAdd( Now(), 3 ),
"dd-mm-yyyy hh:mm" )
Adaugă trei zile (unități implicite) la data și ora curentă. "18-07-2013 13:02"
Text( DateAdd( Now(), 4, TimeUnit.Hours ),
"dd-mm-yyyy hh:mm" )
Adăugați patru ore la data și ora curentă. "15-07-2013 17:02"
Text( DateAdd( Today(), 1, TimeUnit.Luni ),
"dd-mm-yyyy hh:mm" )
Adăugă o lună la data curentă, fără oră Astăzi nu returnează o componentă timp. "15-08-2013 00:00"
Text( DateAdd( Now(), -30, TimeUnit.Minutes ),
"dd-mm-yyyy hh:mm" )
Reducem 30 de minute de la data și ora curentă. "15-07-2013 12:32"

Simplu DateDiff

Formulă Descriere Rezultat
DateDiff( Now(), DateValue("1.01.2014") ) Returnează diferența dintre cele două unități în unitățile implicite de TimeUnit.Days 170
DateDiff( Now(), DateValue("1.01.2014"), TimeUnit.Luni ) Returnează diferența dintre cele două valori în TimeUnit.Months 6
DateDiff( Now(), Today(), TimeUnit.Minutes ) Returnează diferența dintre data/ora curentă și data curentă (fără oră) în câteva minute. Întrucât Acum este mai târziu decât Astăzi rezultatul va fi negativ. -782

Diferența de date cu rezultate fracționate

Funcția DateDiff returnează doar un număr întreg de unități scăzute, iar precizia este dată în unitatea specificată. Pentru a calcula diferența cu o precizie mai mare, utilizați o unitate mai mică și convertiți rezultatul în mod corespunzător, ca în exemplele de mai jos.

Formulă Descriere Rezultat
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) Minutele/secundele sunt ignorate, diferența se bazează pe timp până la oră. 1
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 Minutele sunt utilizate în diferență, iar rezultatul este împărțit la 60 pentru a avea diferența în ore. 0.5
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 Minutele și secundele sunt utilizate în diferență; rezultatul este împărțit la 3600 pentru a avea diferența în ore. 0.51

Se efectuează conversia la UTC

Pentru a efectua conversia la UTC (Timp universal), adăugați ora TimeZoneOffset dată.

De exemplu, imaginați-vă că data și ora actuală este 15 iulie 2013, 13:02 ora de vară a Pacificului, (PDT, UTC-7). Pentru a determina ora curentă în UTC, utilizați:

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

TimeZoneOffset este setată implicit la ora curentă, deci nu trebuie să o transmiteți.

Pentru a vedea rezultatul, utilizați funcția Text cu formatul dd-mm-yyyy hh:mm, care va returna 15-07-2013 20:02.

Convertirea din UTC

Pentru a efectua conversia din UTC, scăpați TimeZoneOffset (adăugând valoarea negativă) pentru timpul dat.

De exemplu, imaginați-vă că data și ora UTC 15 iulie 2013, 20:02 sunt stocate într-o variabilă numită StartTime. Pentru a regla ora pentru fusul orar al utilizatorului, utilizați:

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

Observați semnul negativ înainte TimeZoneOffset de a scădea decalajul, nu de a-l adăuga.

Pentru a vedea rezultatul, utilizați funcția Text cu formatul dd-mm-yyyy hh:mm, care va avea drept rezultat 15-07-2013 13:02 dacă sunteți la ora de vară a Pacificului.