DateAdd, DateDiff és TimeZoneOffset függvény

A következőkre vonatkozik: Vászonalapú alkalmazások képletoszlopai Dataverse 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.Month,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.
  • Addition – Kötelező. A DateTime értékhez hozzáadandó Egységek száma.
  • Egységek – nem kötelező. A hozzáadni kívánt egységek típusa:TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Month,TimeUnit.Quarters vagyTimeUnit.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 – nem kötelező. A kivonandó egységek típusa:TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Month,TimeUnit.Quarters vagyTimeUnit.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("1/1/2014") ) 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 értéke alapértelmezés szerint az aktuális idő, így ennek nem szükséges argumentumot átadni.

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.