Megosztás a következőn keresztül:


DateAdd, DateDiff és TimeZoneOffset függvény

Function Érvényesség
DátumHozzáadás Vászonalapú alkalmazások Dataverse képletoszlopai Asztali folyamatok Modellvezérelt alkalmazások Power Platform CLI
DateDiff Vászonalapú alkalmazások Dataverse képletoszlopai Asztali folyamatok Modellvezérelt alkalmazások Power Platform CLI
TimeZoneOffset Vászonalapú alkalmazások Asztali folyamatok Modellvezérelt alkalmazások Power Platform CLI

Adatok dátum- és időértékekhez történő hozzáadására, dátum- és időértékek közötti különbség meghatározására, illetve a helyi idő és az egyezményes világidő közötti átváltásra használhatók.

Ismertetés

A DateAdd függvény adott számú egységet ad hozzá egy dátum- és időértékhez. Az eredmény egy új dátum- és időérték lesz. Negatív érték megadásával a dátum- és időértékeket csökkentheti adott egységgel.

A DateDiff függvény két dátum- és időérték különbségét adja vissza. Az eredmény a mértékegységek egész száma.

Mindkét függvény mértékegysége lehet TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters, vagy TimeUnit.Years. Alapértelmezés szerint mindkét függvény a TimeUnit.Days függvényt használja egységként.

A TimeZoneOffset függvény percekben adja vissza a felhasználó helyi ideje és az UTC (egyezményes világidő) közötti eltérést.

A DateAdd és a TimeZoneOffset együttes használatával kovertálhatja a felhasználó helyi idejét az UTC szerinti időre (vagy fordítva). A TimeZoneOffset hozzáadásakor a rendszer a helyi időt átváltja UTC-re, kivonásakor (negatív értékének hozzáadásakor) pedig az UTC-t váltja át helyi időre.

További információt a Dátum, idő és DateIdő adattípusok és a Dátumok és időpontok használata című témakörben talál.

Szintaxis

DateAdd( DateTime, Addition [, Egységek ] )

  • DateTime - Kötelező. A művelethez használandó dátum- és időérték.
  • Kiegészítés - kötelező. A DateTime értékhez hozzáadandó Egységek száma.
  • Egységek - opcionális. A hozzáadni kívánt egységek típusa: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Month, TimeUnit.Quarters vagy TimeUnit.Years. Ha nincs megadva, a rendszer a TimeUnit.Days értéket használja.

DateDiff( StartDateTime; EndDateTime [; Egységek ] )

  • StartDateTime – Kötelező. A kezdő dátum- és időérték.
  • EndDateTime – Kötelező. A befejező dátum- és időérték.
  • Egységek - opcionális. A kivonandó egységek típusa: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Month, TimeUnit.Quarters vagy TimeUnit.Years. Ha nincs megadva, a rendszer a TimeUnit.Days értéket használja.

TimeZoneOffset( [ DateTime ] )

  • DateTime – Nem kötelező. Az a dátum- és időérték, amelynek az eltolását vissza kell adni. Alapértelmezés szerint az aktuális dátumot és időpontot használja a rendszer.

Példák

Az alábbi példákban az aktuális dátum és időpont 2013. július 15., 13:02.

Egyszerű DateAdd

Képlet Ismertetés Eredmény
Text( DateAdd( Now(), 3 ),
"dd-mm-yyyy hh:mm" )
Három nap (az alapértelmezett időegység) hozzáadása az aktuális dátumhoz és időponthoz. "18-07-2013 13:02"
Text( DateAdd( Now(), 4, TimeUnit.Hours ),
"dd-mm-yyyy hh:mm" )
Négy óra hozzáadása az aktuális dátumhoz és időponthoz. "15-07-2013 17:02"
Text( DateAdd( Today(), 1, TimeUnit.Months ),
"dd-mm-yyyy hh:mm" )
Egy hónap hozzáadása az aktuális dátumhoz, időpont nélkül, mivel a Today (Ma) függvény nem ad vissza időpont-összetevőt. "15-08-2013 00:00"
Text( DateAdd( Now(), -30, TimeUnit.Minutes ),
"dd-mm-yyyy hh:mm" )
30 perc kivonása az aktuális dátumból és időpontból. "15-07-2013 12:32"

Egyszerű DateDiff

Képlet Ismertetés Eredmény
DateDiff( Now(), DateValue("2014.01.01") ) A két egység közötti különbséget adja eredményül a TimeUnit.Days alapértelmezett mértékegységében 170
DateDiff( Now(), DateValue("2014.01.01.), TimeUnit.Months ) A TimeUnit.Month függvényben megadott két érték különbségét adja eredményül 6
DateDiff( Now(), Today(), TimeUnit.Minutes ) Az aktuális dátum és időpont, illetve az aktuális (időpont nélküli) dátum közötti különbség visszaadása percben. Mivel a Now (Most) értéke későbbi, mint a Today (Ma) értéke, az eredmény negatív lesz. -782

Dátumok közötti különbség és a részeredmények

A DateDiff függvény csak a kivont egységek egy egész számát adja vissza, a pontosságot a megadott egység adja meg. A különbség nagyobb pontosságú kiszámításához használjon kisebb egységet, és az eredményt ennek megfelelően alakítsa át, mint az alábbi példákban.

Képlet Ismertetés Eredmény
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) A rendszer figyelmen kívül hagyja a perceket/másodpercet, a különbség az órára kerekített időn alapul. 1
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 A perceket a különbségben használják, az eredményt pedig 60-nal osztják, hogy a különbséget órában kapják meg. 0.5
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 A perceket és másodperceket a különbségben használják, az eredményt pedig 3600-nal osztják, hogy a különbséget órában kapják meg. 0.51

Átváltás UTC-re

Az UTC-re (egyezményes világidőre) való átváltás a TimeZoneOffset adott időhöz történő hozzáadásával történik.

Tegyük fel például, hogy az aktuális dátum és időpont 2013. július 15., 13:02 a csendes-óceáni nyári idő (PDT UTC-7) szerint. Az UTC szerinti aktuális idő meghatározásához használja a következő képletet:

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

A TimeZoneOffset alapértelmezés szerint az aktuális idő, így nem kell argumentumot átadnia.

Az eredmény megjelenítéséhez használja a Text függvényt az dd-mm-yyyy hh:mm formátummal, amely a 15-07-2013 20:02 értéket fogja visszaadni.

Átváltás UTC-ről

Az UTC-ről való átváltáshoz vonja ki a TimeZoneOffset értékét (a negatív előjel hozzáadásával) az adott időpontból.

Tegyük fel például, hogy az UTC szerinti dátum és időpont 2013. július 15., 20:02, amely a StartTime változóban van tárolva. Az idő felhasználó időzónájára való átváltásához használja az alábbi képletet:

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

Ügyeljen a negatív előjelre a TimeZoneOffset előtt; ennek hatására hozzáadás helyett a rendszer kivonja az eltolást az aktuális értékből.

Az eredmény megjelenítéséhez használja a Text függvényt az dd-mm-yyyy hh:mm formátummal. Az eredmény 15-07-2013 13:02 lesz, ha Ön a csendes-óceáni nyári idő szerinti időzónában tartózkodik.