Bendrinti naudojant


Funkcijos DateAdd, DateDiff ir TimeZoneOffset

Funkcija Taikoma (kam)
DataPridėti Drobės programų Dataverse formulių stulpeliai Darbalaukio srautai Modeliu pagrįstos programos Power Platform CLI
DataDiff Drobės programų Dataverse formulių stulpeliai Darbalaukio srautai Modeliu pagrįstos programos Power Platform CLI
TimeZoneOffset Drobės programos Darbalaukio srautai Modeliu pagrįstos programos Power Platform CLI

Prideda prie skirtumo tarp datos / laiko reikšmių arba jį randa bei reikšmes konvertuoja tarp vietinio laiko ir UTC.

Aprašas

Funkcija DateAdd prie datos / laiko reikšmės prideda kokį nors vienetų skaičių. Rezultatas yra nauja datos / laiko reikšmė. Taip pat galite iš datos / laiko reikšmės kokį nors vienetų skaičių atimti, nurodydami neigiamą reikšmę.

Funkcija DateDiff pateikia skirtumą tarp dviejų datos / laiko reikšmių. Rezultatas yra sveikasis vienetų skaičius.

Abiejų funkcijų vienetai gali būti TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters arba TimeUnit.Years. Pagal numatytuosius nustatymus abi funkcijos naudoja TimeUnit.Days kaip vienetus.

Funkcija TimeZoneOffset pateikia minučių skaičių tarp vartotojo vietinio laiko ir UTC (universaliojo laiko).

Su TimeZoneOffset naudodami DateAdd, vartotojo vietinį laiką galite konveruoti į UTC (universalųjį laiką) ir atvirkščiai. TimeZoneOffset pridėjus, vietinis laikas bus konvertuotas į UTC, o jo atėmus (pridėjus neigiamą reikšmę), UTC bus konvertuotas į vietinį laiką.

Be to, daugiau informacijos ieškokite duomenų tipai Data, Laikas ir DateTime ir darbas su datomis ir laikais .

Sintaksė

DateAdd( DateTime, Addition [, Units ] )

  • DateTime – būtina. Datos / laiko reikšmė, su kuria reikia atlikti operacijas.
  • Addition – būtina. Skaičius vienetais (Units), pridėtinas prie DateTime.
  • Units – nebūtina. Vienetų, kuriuos reikia pridėti, tipas: TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters arbaTimeUnit.Years. Jei nenurodyta,Naudojamas TimeUnit.Days .

DateDiff( StartDateTime, EndDateTime [, Units ] )

  • StartDateTime – būtina. Pradinė datos / laiko reikšmė.
  • EndDateTime – būtina. Galutinė datos / laiko reikšmė.
  • Units – nebūtina. Vienetų, kuriuos reikia atimti, tipas: TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters arbaTimeUnit.Years. Jei nenurodyta,Naudojamas TimeUnit.Days .

TimeZoneOffset( [ DateTime ] )

  • DateTime – nebūtina. Datos / laiko reikšmė, kurios skirtumą reikia pateikti. Numatyta, kad naudojami dabartiniai data / laikas.

Pavyzdžiai

Laikykite, kad visuose šiuose pavyzdžiuose dabartiniai data ir laikas yra 2013 m. liepos 15 d., 13.02 val.

Paprastoji DateAdd

Formulė Aprašas Rezultatas
Text( DateAdd( Now(), 3 ),
"dd-mm-yyyy hh:mm" )
Prie dabartinių datos ir laiko pridedamos trys dienos (numatytieji vienetai). „18-07-2013 13:02“
Text( DateAdd( Now(), 4, TimeUnit.Hours ),
"dd-mm-yyyy hh:mm" )
Prie dabartinių datos ir laiko pridedamos keturios valandos. „15-07-2013 17:02“
Text( DateAdd( Today(), 1, TimeUnit.Months ),
"dd-mm-yyyy hh:mm" )
Prie dabartinės datos pridedamas vienas mėnuo be laiko, nes Today laiko komponento nepateikia. „15-08-2013 00:00“
Text( DateAdd( Now(), -30, TimeUnit.Minutes ),
"dd-mm-yyyy hh:mm" )
Iš dabartinių datos ir laiko atimama 30 minučių. „15-07-2013 12:32“

Paprastoji DateDiff

Formulė Aprašas Rezultatas
DateDiff( Now(), DateValue("1/1/2014") ) Grąžina skirtumą tarp dviejų vienetų, esančių numatytuosiuose TimeUnit.Days vienetuose 170
DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) Grąžina skirtumą tarp dviejų reikšmių, esančių TimeUnit.Months 6
DateDiff( Now(), Today(), TimeUnit.Minutes ) Pateikia skirtumą tarp dabartinės datos / laiko ir tik dabartinės datos (be laiko) minutėmis. Kadangi Now yra vėliau nei Today, rezultatas bus neigiamas. -782

Datų skirtumas su daliniais rezultatais

Funkcija DateDiff pateikia tik atimamą vienetų sveikąjį skaičių, o tikslumas nurodomas nurodytame vienete. Norėdami kuo tiksliau apskaičiuoti skirtumą, naudokite mažesnius vienetus ir tinkamai konvertuokite rezultatą, kaip nurodyta toliau pavyzdžiuose.

Formulė Aprašymas Rezultatas
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) Minučių / sekundžių nepaisoma, skirtumas priklauso nuo laiko iki valandos. 1
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 Minutėmis naudojamas skirtumas, o rezultatas padalytas iš 60, kad būtų skirtumas tarp valandų. 0.5
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 Minutėmis naudojamas skirtumas, o rezultatas padalytas iš 3600, kad būtų skirtumas tarp valandų. 0.51

Konvertavimas į UTC

Norėdami konvertuoti į UTC (universalųjį laiką), pridėkite konkretaus laiko TimeZoneOffset.

Pavyzdžiui, įsivaizduokite, kad dabartiniai data ir laikas Ramiojo vandenyno vasaros laiku (PDT, UTC–7) yra 2013 m. liepos 15 d., 13.02 val. Norėdami nustatyti dabartinį UTC laiką, naudokite:

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

Numatyta, kad kaip TimeZoneOffset naudojamas dabartinis laikas, todėl jam nereikia perduoti argumento.

Norėdami matyti rezultatą, naudokite funkciją Text ir formatą dd-mm-yyyy hh:mm – bus pateikta 15-07-2013 20:02.

Konvertavimas iš UTC

Jei norite konvertuoti iš UTC, atimkite konkretaus laiko TimeZoneOffset (pridėdami neigiamą reikšmę).

Pavyzdžiui, įsivaizduokite, kad UTC data ir laikas 2013 m. liepos 15 d., 20.02 val. saugomi kintamajame pavadinimu StartTime. Norėdami koreguoti vartotojo laiko juostos laiką, naudokite:

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

Atkreipkite dėmesį į neigiamą ženklą prieš TimeZoneOffset. kad skirtumas būtų atimamas, o ne pridedamas.

Norėdami matyti rezultatą, naudokite funkciją Text ir formatą dd-mm-yyyy hh:mm – bus pateikta 15-07-2013 13:02 (jei gyvenate Ramiojo vandenyno vasaros laiku).