Bendrinti naudojant


DateAdd, DateDiffir TimeZoneOffset funkcijos

Funkcijos Taikoma (kam)
DateAdd
DateDiff
Drobės programėlės "Copilot Studio Desktop" srautuos "Dataverse" formulių stulpelius Modeliu pagrįstos programos "Power Platform" CLI "Dataverse" funkcijos "Power Pages"
TimeZoneOffset "Canvas apps Copilot Studio Desktop " srautus modeliu pagrįstos programos "Power Platform" CLI "Dataverse" funkcijos "Power Pages"
Funkcija Taikoma (kam)
DateAdd
DateDiff
TimeZoneOffset

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

Aprašas

Funkcija DateAdd prideda vienetų skaičių prie datos / laiko reikšmės. 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 grąžina dviejų datos / laiko reikšmių skirtumą. 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 vietos laiko ir UTC (universaliojo laiko).

Galite naudoti DateAdd su TimeZoneOffset norėdami konvertuoti tarp vartotojo vietos laiko ir UTC (universaliojo laiko). Įtraukus TimeZoneOffset , vietinis laikas bus konvertuota į UTC, o atimant (pridedant neigiamą) bus konvertuota iš UTC į 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.
  • papildymas - būtinas. Skaičius vienetais (Units), pridėtinas prie DateTime.
  • Vienetai - neprivaloma. 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 [, Vienetai ] )

  • StartDateTime - būtina. Pradinė datos / laiko reikšmė.
  • EndDateTime - būtina. Galutinė datos / laiko reikšmė.
  • Vienetai - neprivaloma. 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 - Pasirinktinai. 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.

Paprastas 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“

Paprastas DateDiff

Formulė Aprašas Rezultatas
DateDiff( Now(), DateValue("2014-01-01") ) Grąžina skirtumą tarp dviejų vienetų, esančių numatytuosiuose TimeUnit.Days vienetuose 170
DateDiff( Now(), DateValue("2014-01-01"), 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 grąžina tik sveikąjį atimamų vienetų skaičių, o tikslumas nurodomas nurodytu vienetu. Norėdami kuo tiksliau apskaičiuoti skirtumą, naudokite mažesnius vienetus ir tinkamai konvertuokite rezultatą, kaip nurodyta toliau pavyzdžiuose.

Formulė Aprašas 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ą), įtraukite TimeZoneOffset nurodytą laiką.

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 )

TimeZoneOffset numatytoji reikšmė yra dabartinis laikas, todėl jums nereikia jo 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

Norėdami konvertuoti iš UTC, atimkite TimeZoneOffset (pridėdami neigiamą) tam tikrą laiką.

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( Pradžios laikas, −TimeZoneOffset( StartTime ), TimeUnit.Minutes )

Atkreipkite dėmesį į neigiamą ženklą prieš TimeZoneOffset atimdami poslinkį, o ne jį įtraukite.

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).