Partajați prin


Funcțiile DateAdd, DateDiff și TimeZoneOffset

Funcţie Se aplică la
DataAdd planșă de lucru aplicații Dataverse coloane de formule Fluxuri desktop Aplicații bazate pe model Power Platform CLI
DataDiff planșă de lucru aplicații Dataverse coloane de formule Fluxuri desktop Aplicații bazate pe model Power Platform CLI
TimeZoneOffset planșă de lucru aplicații Fluxuri desktop Aplicații bazate pe model Power Platform CLI

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

Descriere

Funcția DateAdd adaugă 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, TimeUnit.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 (Ora universală).

Puteți să folosiți DateAdd cu TimeZoneOffset pentru a converti între ora locală a utilizatorului și UTC (Ora universală). Adăugând TimeZoneOffset va converti ora locală în UTC și scăzând-o (adăugând negativul) se va converti de la UTC la ora 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, Adăugare [, 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 de adăugat: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters sau TimeUnit.Years. Dacă nu este specificat, sunt utilizate 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 de scădere: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters sau TimeUnit.Years. Dacă nu este specificat, sunt utilizate 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.

DateAdd simplă

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( DataAdd(Acum(), 4, TimeUnit.Hours ),
"dd-mm-yyyy hh:mm" )
Adăugați patru ore la data și ora curentă. "15-07-2013 17:02"
Text( DataAdd(Azi(), 1, TimeUnit.Months ),
"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( DataAdd( Acum(), -30, TimeUnit.Minutes ),
"dd-mm-yyyy hh:mm" )
Reducem 30 de minute de la data și ora curentă. "15-07-2013 12:32"

DateDiff Simplu

Formulă Descriere Rezultat
DateDiff( Now(), DateValue("1/1/2014") ) Returnează diferența dintre cele două unități în unitățile implicite de TimeUnit.Days 170
DateDiff(Acum(), DateValue("1/1/2014"), TimeUnit.Months ) Returnează diferența dintre cele două valori în TimeUnit.Months 6
DateDiff(Acum(), Astăzi(), 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 care se scad, 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.

Formula Descriere Rezultat
DataDiff( 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
DataDiff( 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
DataDiff( 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 converti la UTC (Oră universală), adăugați TimeZoneOffset pentru timpul 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:

  • DataAdd(Acum(), TimeZoneOffset(), TimeUnit.Minutes)

TimeZoneOffset va avea ora curentă drept oră implicită, deci nu trebuie să-i transmiteți un argument.

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ădeți TimeZoneOffset (adăugând negativul) pentru intervalul de timp 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:

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

Notați semnul minus înainte TimeZoneOffset pentru a scădea decalajul, mai degrabă decât pentru 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.