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.