Share via


DateAdd-, DateDiff- ja TimeZoneOffset-funktio

Koskee seuraavia: Pohjaan perustuvat sovellukset Dataverse -kaavasarakkeet Työpöytätyökulut Mallipohjaiset sovellukset Power Platform CLI

Lisää tai etsii päivämäärä/aika-arvon eron ja muuntaa paikallisen ajan ja UTC-ajan välillä.

Kuvaus

DateAdd-funktio lisää yksiköitä päivämäärä/aika-arvoon. Tuloksena on uusi päivämäärä/aika-arvo. Voit myös vähentää yksiköitä päivämäärä/aika-arvosta määrittämällä negatiivisen arvon.

DateDiff-funktio palauttaa kahden päivämäärä/aika-arvon välisen eron. Tuloksena on yksiköiden määrä kokonaislukuna.

Molemmille funktioille yksiköt voivat olla TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters tai TimeUnit.Years. Molemmat funktiot käyttävät oletusarvoisesti yksikkönä TimeUnit.Days.

TimeZoneOffset-funktio palauttaa käyttäjän paikallisen ajan ja UTC-ajan (Coordinated Universal Time) välisen aikaeron määrän minuutteina.

Voit käyttää DateAdd-funktiota TimeZoneOffset-funktion kanssa tehdäksesi muunnoksen käyttäjän paikallisen ajan ja UTC-ajan (Coordinated Universal Time) välillä. TimeZoneOffset-funktion lisääminen muuttaa paikallisen ajan UTC-ajaksi ja sen vähentäminen (negatiivisen arvon lisääminen) UTC-ajan paikalliseksi ajaksi.

Lisätietoja on myös kohdassa Päivämäärä-, aika- ja päivämäärä/aika-tietotyypit ja Päivämäärien ja kellonaikojen käsitteleminen.

Syntaksi

DateAdd( DateTime, Addition [, Units ] )

  • DateTime – Pakollinen. Käytettävä päivämäärä/aika-arvo.
  • Addition – Pakollinen. Yksikköinä (units) annettu luku, joka lisätään DateTimeen.
  • Units – Valinnainen. Lisättävien yksiköiden tyyppi: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters tai TimeUnit.Years. Jos tätä ei määritetä, käytetään yksikköä TimeUnit.Days.

DateDiff( StartDateTime, EndDateTime [, Units ] )

  • StartDateTime – Pakollinen. Alkupäivämäärä/aika-arvo.
  • EndDateTime – Pakollinen. Loppupäivämäärä/aika-arvo.
  • Units – Valinnainen. Vähennettävien yksiköiden tyyppi: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters tai TimeUnit.Years. Jos tätä ei määritetä, käytetään yksikköä TimeUnit.Days.

TimeZoneOffset( [ DateTime ] )

  • DateTime – Valinnainen. Päivämäärä/aika-arvo, jolle siirtymä palautetaan. Oletusarvoisesti käytetään nykyistä päivämäärä/aika-arvoa.

Esimerkit

Kaikissa näissä esimerkeissä oletetaan, että nykyinen päivämäärä ja aika on 15. heinäkuuta 2013, kello 13:02.

Yksinkertainen DateAdd

Kaava Kuvaus Tulos
Text( DateAdd( Now(), 3 ),
"dd-mm-yyyy hh:mm" )
Lisää kolme päivää (oletusarvoyksiköt) nykyiseen päivämäärään ja aikaan. "18-07-2013 13:02"
Text( DateAdd( Now(), 4, TimeUnit.Hours ),
"dd-mm-yyyy hh:mm" )
Lisää nykyiseen päivämäärään ja aikaan neljä tuntia. "15-07-2013 17:02"
Text( DateAdd( Today(), 1, TimeUnit.Months ),
"dd-mm-yyyy hh:mm" )
Lisää nykyiseen päivämäärän yhden kuukauden ilman aikaa, koska Tänään ei palauta aikaosaa. "15-08-2013 00:00"
Text( DateAdd( Now(), ‑30, TimeUnit.Minutes ),
"dd-mm-yyyy hh:mm" )
Vähentää nykyisestä päivämäärästä ja ajasta 30 minuuttia. "15-07-2013 12:32"

Yksinkertainen DateDiff

Kaava Kuvaus Tulos
DateDiff( Now(), DateValue("1/1/2014") ) Palauttaa kahden arvon eron oletusyksikkönä TimeUnit.Days 170
DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) Palauttaa kahden arvon eron yksikkönä TimeUnit.Months 6
DateDiff( Now(), Today(), TimeUnit.Minutes ) Palauttaa eron nykyisen päivämäärä/aika-arvon ja nykyisen päivämäärän (ei aikaa) välillä minuutteina. Koska Now on myöhäisempi kuin Today, tulos on negatiivinen. -782

Päivämäärien ero ja murtolukutulokset

DateDiff-funktio palauttaa vain kokonaislukumäärän yksiköitä, jotka vähennetään, ja tarkkuus määritetään määritetyssä yksikössä. Jos haluat laskea eron tarkemmalla tarkkuudella, käytä pienempää yksikköä ja muunna tulos sopivalla tavalla kuten alla olevassa esimerkissä.

Kaava Kuvaus Tulos
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) Minuutit/sekunnit ohitetaan, ero perustuu tuntiin. 1
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 Minuutteja käytetään erossa, ja tulos jaetaan 60:llä, jotta saadan ero tunteina. 0.5
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 Minuutteja ja sekunteja käytetään erossa, ja tulos jaetaan 3600:lla, jotta saadan ero tunteina. 0.51

Muuntaminen UTC-aikaan

Voit muuntaa UTC-aikaan (Coordinated Universal Time) lisäämällä TimeZoneOffset-funktion tiettyyn aikaan.

Kuvitellaan esimerkiksi, että nykyinen päivämäärä ja aika on 15. heinäkuuta 2013, kello 13:02 Tyynenmeren kesäaikaa (PDT, UTC-7). Voit selvittää nykyisen ajan UTC-muodossa käyttämällä seuraavaa kaavaa:

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

TimeZoneOffsetin oletusarvo on nykyinen aika, jolloin sinun ei tarvitse välittää sitä argumenttina.

Jotta näet tuloksen, käytä Text-funktiota muodossa dd-mm-yyyy hh:mm, jolloin tuloksena palautetaan 15-07-2013 20:02.

Muuntaminen UTC-ajasta

Muunna UTC-ajasta vähentämällä TimeZoneOffset mistä tahansa ajasta (lisäämällä negatiivisen arvon).

Kuvitellaan esimerkiksi, että UTC-päivämäärä ja -aika 15. heinäkuuta 2013, 20:02:00 on tallennettu muuttujaan nimeltä Aloitusaika. Säädä aika käyttäjän aikavyöhykkeelle käyttämällä kaavaa:

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

Huomaa negatiivinen etumerkki ennen TimeZoneOffset-funktiota, mikä saa aikaan aikaeron vähentämisen lisäämisen sijaan.

Jotta näet tuloksen, käytä Text-funktiota muodossa dd-mm-yyyy hh:mm, jolloin tuloksena palautetaan 15-07-2013 13:02, jos olet Tyynenmeren kesäajan aikavyöhykkeellä.