Share via


Funkcije DateAdd, DateDiff in TimeZoneOffset

Velja za: Stolpci s formulo aplikacij Dataverse delovnega območja Tokovi namizja Aplikacije Power Platform , ki temeljijo na modelu CLI

Doda vrednost k vrednosti datuma/časa ali ugotovi razliko v vrednostih datuma/časa ter pretvarja med lokalnim časom in UTC.

Opis

Funkcija DateAdd doda število enot k vrednosti datuma/časa. Rezultat je nova vrednost datuma/časa. Lahko tudi odštejete število enot od vrednosti datuma/časa, tako da navedete negativno vrednost.

Funkcija DateDiff vrne razliko med dvema vrednostma datuma/ časa. Rezultat je celo število enot.

Za obe funkciji so lahko enote TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Month,TimeUnit.Quarters ali TimeUnit.Years. Obe funkciji privzeto uporabljata funkcijo TimeUnit.Days kot enoti.

Funkcija TimeZoneOffset vrne število minut med uporabnikovim lokalnim časom in časom UTC (usklajen univerzalni čas).

Funkcijo DateAdd lahko uporabite skupaj s funkcijo TimeZoneOffset za pretvorbo med uporabnikovim lokalnim časom in časom UTC (usklajen univerzalni čas). Če prištejete funkcijo TimeZoneOffset, se lokalni čas pretvori v UTC, če pa jo odštejete (prištejete negativno vrednost) se UTC pretvori v lokalni čas.

Če želite več informacij, glejte tudi podatkovne tipe Datum, ura in DateTime ter delo z datumi in urami .

Sintaksa

DateAdd( DateTime, Addition [, Units ] )

  • DateTime – obvezno. Vrednost datuma/časa za operiranje.
  • Addition – obvezno. Število v možnosti Enote, ki se prišteje k DateTime.
  • Units – izbirno. Vrsta enot za dodajanje: TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Month,TimeUnit.Quarters ali TimeUnit.Years. Če ni določeno, se uporabi TimeUnit.Days .

DateDiff( StartDateTime, EndDateTime [, Units ] )

  • StartDateTime – obvezno. Začetna vrednost datuma/časa.
  • EndDateTime – obvezno. Končna vrednost datuma/časa.
  • Units – izbirno. Vrsta enot za odštevanje: TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters ali TimeUnit.Years. Če ni določeno, se uporabi TimeUnit.Days .

TimeZoneOffset( [ DateTime ] )

  • DateTime – izbirno. Vrednost datuma/časa za katero se vrne odmik. Privzeto je uporabljen trenutni datum/čas.

Primeri

V vseh teh primerih domnevamo, da sta trenutni datum in čas 15. julij 2013, 13:02.

Enostavna funkcija DateAdd

Formula Opis Rezultat
Text( DateAdd( Now(), 3 ),
"dd-mm-yyyy hh:mm" )
Prišteje tri dni (privzete enote) trenutnemu datumu in času. "18-07-2013 13:02"
Text( DateAdd( Now(), 4, TimeUnit.Hours ),
"dd-mm-yyyy hh:mm" )
Prišteje štiri ure trenutnemu datumu in času. "15-07-2013 17:02"
Besedilo( DateAdd( Today(), 1, TimeUnit.Months ),
"dd-mm-yyyy hh:mm" )
Prišteje en mesec trenutnemu datumu, brez časa, kot je Today, ne vrne komponente časa. "15-08-2013 00:00"
Text( DateAdd( Now(), -30, TimeUnit.Minutes ),
"dd-mm-yyyy hh:mm" )
Odšteje 30 minut od trenutnega datuma in časa. "15-07-2013 12:32"

Enostavna funkcija DateDiff

Formula Opis Rezultat
DateDiff( Now(), DateValue("1/1/2014") ) Vrne razliko med dvema enotama v privzetih enotah funkcije TimeUnit.Days. 170
DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) Vrne razliko med obema vrednostma v orodju TimeUnit.Month. 6
DateDiff( Zdaj (), danes(), TimeUnit.Minutes ) Vrne vrednost med trenutnim datumom/časom in trenutnim datumom (brez časa) v minutah. Ker je Now pozneje kot Today, bo rezultat negativen. –782

Razlika datumov z rezultati po delih

Funkcija DateDiff vrne samo celo število enot, ki se odštejejo, natančnost pa je podana v navedeni enoti. Za izračun razlike z večjo natančnostjo uporabite manjšo enoto in primerno pretvorite rezultat, kot v spodnjih primerih.

Formula Opis Rezultat
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) Minute/sekunde se prezrejo, razlika temelji na času do ure. 1
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 Minute se uporabijo v razliki, rezultat pa se deli s 60, da se dobi razlika v urah. 0.5
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 Minute in sekunde se uporabijo v razliki, rezultat pa se deli s 3600, da se dobi razlika v urah. 0.51

Pretvorba v UTC

Za pretvorbo v UTC (usklajen univerzalni čas), prištejte TimeZoneOffset za določen čas.

Na primer, predstavljajmo si, da sta trenutni datum in čas 15. julij 2013, 13:02 v pacifiškem poletnem času (PDT, UTC-7). Za določitev trenutnega časa v UTC uporabite:

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

TimeZoneOffset privzeto uporablja trenutni čas, da mu ni treba posredovati argumenta.

Če želite videti rezultat, uporabite funkcijo Text z obliko zapisa dd-mm-yyyy hh:mm, ki vrne 15-07-2013 20:02.

Pretvorba iz UTC

Če želite pretvoriti iz UTC, odštejte TimeZoneOffset (tako da prištejete negativno vrednost) za dani čas.

Na primer, predstavljajte si, da sta datum in čas UTC 15. julij 2013, 8:02 shranjena v spremenljivki, imenovani StartTime. Da prilagodite čas za uporabnikov časovni pas, uporabite:

  • DateAdd( Začetni čas, −TimeZoneOffset( StartTime ), TimeUnit.Minutes )

Upoštevajte negativni znak pred TimeZoneOffset, da odštejete odmik, namesto da bi ga dodali.

Če želite videti rezultat, uporabite funkcijo Text z obliko zapisa dd-mm-yyyy hh:mm, da nastane 15-07-2013 13:02, če ste v pacifiškem poletnem času.