Funkcie DateAdd, DateDiff a TimeZoneOffset
Function | Vzťahuje sa na |
---|---|
DateAdd | Aplikácie na plátne Dataverse stĺpce vzorcov Toky na počítači Modelom riadené aplikácie Power Platform CLI |
DateDiff | Aplikácie na plátne Dataverse stĺpce vzorcov Toky na počítači Modelom riadené aplikácie Power Platform CLI |
TimeZoneOffset | Aplikácie na plátne Toky na počítači Aplikácie s podporou modelu Power Platform CLI |
Pridáva alebo zisťuje rozdiel v hodnotách času a dátumu a prevedie miestny čas na UTC (koordinovaný svetový čas).
Popis
Funkcia DateAdd pripočíta k hodnotám dátumu a času počet jednotiek. Výsledkom je nová hodnota dátumu a času. Zadaním zápornej hodnoty môžete tiež odčítať počet jednotiek z hodnoty dátumu a času.
Funkcia DateDiff vracia rozdiel dvomi hodnotami dátumu a času. Výsledkom je celé číslo jednotiek.
Pre obe funkcie môžu byť jednotky Časová jednotka.Millisekundy, Časová jednotka.Sekundy, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters alebo TimeUnit.Years. Obe funkcie štandardne používajú TimeUnit.Days ako jednotky.
Funkcia TimeZoneOffset vracia počet minút medzi miestnym časom a UTC (koordinovaným svetovým časom).
Funkciu DateAdd spolu s funkciou TimeZoneOffset môžete použiť na prevod medzi miestnym časom a UTC (koordinovaným svetovým časom). Pridaním funkcie TimeZoneOffset sa miestny čas prevedie na UTC a jej odčítaním (pridaním negatívnej hodnoty) sa UTC prevedie na miestny čas.
Ďalšie informácie nájdete aj v časti Dátové typy dátumu, času a dátumu a času a práca s dátumami a časmi .
Syntax
DateAdd( DateTime, Addition [, Jednotky ] )
- DateTime – povinné. Hodnota dátumu a času s ktorou sa má operácia vykonať.
- Dodatok – povinné. Číslo v jednotkách Units, ktoré sa majú pripočítať k hodnote DateTime.
- Jednotky – voliteľné. Typ Jednotiek , ktoré sa majú pridať: Časová jednotka.Millisekundy, Časová jednotka.sekundy, Časová jednotka.minúty, Časová jednotka.hodiny, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters alebo Časová jednotka.roky. Ak nie je zadané, použijú sa Časová jednotka.Dni .
DateDiff( StartDateTime, EndDateTime [, Jednotky ] )
- StartDateTime - povinné. Počiatočná hodnota dátumu a času.
- EndDateTime - povinné. Koncová hodnota dátumu a času.
- Jednotky – voliteľné. Typ Jednotiek , ktoré sa majú odpočítať: Časová jednotka.Millisekundy, Časová jednotka.Sekundy, Časová jednotka.minúty, Časová jednotka.hodiny, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters alebo Časová jednotka.roky. Ak nie je zadané, použijú sa Časová jednotka.Dni .
TimeZoneOffset( [ DateTime ] )
- DateTime – voliteľné. Hodnota dátumu a času, ktorej posun sa má vrátiť. Podľa predvoleného nastavenia sa použije aktuálny dátum a čas.
Príklady
Vo všetkých týchto príkladoch sa predpokladá, že aktuálny dátum a čas je 15. júl 2013, 13:02.
Jednoduchá funkcia DateAdd
Vzorec | Popis | Výsledok |
---|---|---|
Text( DateAdd( Now(), 3), "dd-mm-yyyy hh:mm" ) |
K aktuálnemu dátumu a času pripočíta tri dni (predvolená jednotka). | "18-07-2013 13:02" |
Text( DateAdd( Now(), 4, TimeUnit.Hours ), "dd-mm-yyyy hh:mm" ) |
K aktuálnemu dátumu a času pripočíta štyri hodiny. | "15-07-2013 17:02" |
Text( DateAdd( Today(), 1, TimeUnit.Months ), "dd-mm-yyyy hh:mm" ) |
K aktuálnemu dátumu (bez času) pripočíta jeden mesiac, keďže funkcia Today nevracia zložku času. | "15-08-2013 00:00" |
Text( DateAdd( Now(), -30, TimeUnit.Minutes ), "dd-mm-yyyy hh:mm" ) |
Od aktuálneho dátumu a času odčíta 30 minút. | "15-07-2013 12:32" |
Jednoduchá funkcia DateDiff
Vzorec | Popis | Výsledok |
---|---|---|
DateDiff( Now(), DateValue("1/1/2014")) | Vráti rozdiel medzi dvoma jednotkami v predvolených jednotkách TimeUnit.Days | 170 |
DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) | Vráti rozdiel medzi dvoma hodnotami v Časová jednotka.Mesiace | 6 |
DateDiff( Now(), Today(), TimeUnit.Minutes ) | Vráti rozdiel medzi aktuálnym dátumom a časom a iba aktuálnym dátumom (bez času) v minútach. Keďže Now je neskoršie ako Today, bude výsledok záporný. | -782 |
Rozdiel dátumov s čiastkovými výsledkami
Funkcia DateDiff vráti iba celý počet odčítaných jednotiek a presnosť je uvedená v zadanej jednotke. Ak chcete vypočítať rozdiel s vyššou presnosťou, použite menšiu jednotku a výsledok primerane preveďte, ako v príkladoch nižšie.
Vzorec | Popis | Výsledok |
---|---|---|
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) | Minúty/sekundy sa ignorujú, rozdiel závisí od času do hodiny. | 1 |
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 | V rozdiele sa používajú minúty a výsledok sa vydelí 60, aby sa dosiahol rozdiel v hodinách. | 0.5 |
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 | V rozdiele sa používajú minúty a sekundy a výsledok sa vydelí 3600, aby sa dosiahol rozdiel v hodinách. | 0.51 |
Prevod na UTC
Ak chcete urobiť prevod na UTC (koordinovaný svetový čas), pridajte k danému času funkciu TimeZoneOffset.
Predpokladajme, že aktuálny dátum a čas je 15. júl 2013, 13:02 v letnom tichomorskom čase (PDT, UTC-7). Aktuálny čas v UTC zistíte takto:
- DateAdd( Now(), TimeZoneOffset(), TimeUnit.Minutes )
TimeZoneOffset predvolene je nastavený na aktuálny čas, takže ho nemusíte zadávať ako argument.
Na zobrazenie výsledku použite funkciu Text s formátom dd-mm-yyyy hh:mm, ktorá vráti hodnotu 15-07-2013 20:02.
Prevod z UTC
Ak chcete urobiť prevod z UTC, odčítajte funkciu TimeZoneOffset (pripočítaním jej zápornej hodnoty) od daného času.
Predpokladajme napríklad, že UTC dátum a čas 15. júl 2013, 20:02 sú uložené v premennej s názvom StartTime. Tento čas prevediete do časového pásma používateľa takto:
- DateAdd( StartTime, −TimeZoneOffset( StartTime ), TimeUnit.Minutes )
Všimnite si záporné znamienko pred funkciou TimeZoneOffset, použitím ktorého sa posun nepripočíta, ale odčíta.
Na zobrazenie výsledku použite funkciu Text s formátom dd-mm-yyyy hh:mm, ktorej výsledkom bude 15-07-2013 13:02, ak sa nachádzate v letnom tichomorskom čase.