Funkce DateAdd, DateDiff a TimeZoneOffset
Function | Platí pro |
---|---|
DatumPřidat | Aplikace na plátně Dataverse sloupce vzorců Toky pro počítače Modelem řízené aplikace Power Platform CLI |
DateDiff | Aplikace na plátně Dataverse sloupce vzorců Toky pro počítače Modelem řízené aplikace Power Platform CLI |
Posun časového pásma | Aplikace na plátně Toky pro počítače Modelem řízené aplikace Power Platform CLI |
Přičte nebo najde rozdíl v hodnotách data a času a provede převod mezi místním časem a standardem UTC.
Popis
Funkce DateAdd přičte počet jednotek k hodnotě data a času. Výsledkem je nová hodnota data a času. Zadáním záporné hodnoty můžete rovněž odečíst počet jednotek od hodnoty data a času.
Funkce DateDiff vrací rozdíl mezi dvěma hodnotami data a času. Výsledkem je celý počet jednotek.
U obou funkcí lze jako jednotky použít TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters nebo TimeUnit.Years. Ve výchozím nastavení používají obě funkce jednotku TimeUnit.Days.
Funkce TimeZoneOffset vrací počet minut mezi místním časem uživatele a standardem UTC (Coordinated Universal Time).
Funkci DateAdd můžete v kombinaci s funkcí TimeZoneOffset použít k převodu mezi místním časem uživatele a standardem UTC (Coordinated Universal Time). Přičtením funkce TimeZoneOffset se místní čas převede na standard UTC a jejím odečtením (přičtením záporné hodnoty) se standard UTC převede na místní čas.
Další informace najdete v části věnované datovým typům Date, Time a DateTime a také v části týkající se práce s daty a časy.
Syntaxe
DateAdd( DateTime, Addition [, Jednotky ])
- DateTime – Povinné. Hodnota data a času, se kterou se má operace provést.
- Doplněk – Povinný. Číslo v Jednotkách, které se má přičíst k DatuAČasu.
- Jednotky – volitelné. Typ Jednotky pro přičtení: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters nebo TimeUnit.Years. Pokud jednotku nezadáte, použije se TimeUnit.Days.
DateDiff( StartDateTime, EndDateTime [, Jednotky ])
- StartDateTime – Povinné. Počáteční hodnota data a času.
- EndDateTime – povinné. Koncová hodnota data a času.
- Jednotky – volitelné. Typ Jednotky pro odečtení: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters nebo TimeUnit.Years. Pokud jednotku nezadáte, použije se TimeUnit.Days.
TimeZoneOffset( [ DateTime ] )
- DateTime – Volitelné. Hodnota data a času, jejíž posun se má vrátit. Ve výchozím nastavení se použije aktuální datum a čas.
Příklady
Ve všech těchto příkladech se předpokládá, že aktuální datum a čas je 15. červenec 2013, 13:02.
Jednoduchá funkce DateAdd
Vzorec | Popis | Výsledek |
---|---|---|
Text( DateAdd( Now(), 3), "dd-mm-yyyy hh:mm" ) |
Přičte k aktuálnímu datu a času tři dny (výchozí jednotka). | "18-07-2013 13:02" |
Text( DateAdd( Now(), 4, TimeUnit.Hours), "dd-mm-yyyy hh:mm" ) |
Přičte k aktuálnímu datu a času čtyři hodiny. | "15-07-2013 17:02" |
Text( DateAdd( Today(), 1, TimeUnit.Months ), "dd-mm-yyyy hh:mm" ) |
Přičte k aktuálnímu datu (bez času) jeden měsíc, protože funkce Today nevrací složku času. | "15-08-2013 00:00" |
Text( DateAdd( Now(), -30, TimeUnit.Minutes ), "dd-mm-yyyy hh:mm" ) |
Odečte od aktuálního data a času 30 minut. | "15-07-2013 12:32" |
Jednoduchá funkce DateDiff
Vzorec | Popis | Výsledek |
---|---|---|
DateDiff( Now(), DateValue("1/1/2014")) | Vrátí rozdíl mezi dvěma jednotkami ve výchozích jednotkách TimeUnit.Days. | 170 |
DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months) | Vrátí rozdíl mezi dvěma hodnotami v jednotkách TimeUnit.Months. | 6 |
DateDiff( Now(), Today(), TimeUnit.Minutes ) | Vrátí rozdíl mezi aktuálním datem a časem a jenom aktuálním datem (bez času) v minutách. Protože Now je pozdější než Today, bude výsledek záporný. | -782 |
Rozdíl dat s částečnými výsledky
Funkce DateDiff vrací pouze celý počet odečítaných jednotek a přesnost je dána zadanou jednotkou. Chcete-li vypočítat rozdíl s vyšší přesností, použijte menší jednotku a odpovídajícím způsobem převeďte výsledek, jako v příkladech níže.
Vzorec | Popis | Výsledek |
---|---|---|
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) | Minuty/sekundy jsou ignorovány, rozdíl je založen na čase do hodiny. | 1 |
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 | V rozdílu se použijí minuty a výsledek se vydělí 60, aby byl rozdíl v hodinách. | 0.5 |
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 | V rozdílu se použijí minuty a sekundy, a výsledek se vydělí 3600, aby byl rozdíl v hodinách. | 0.51 |
Převod na standard UTC
Pokud chcete provést převod na standard UTC (Coordinated Universal Time), přičtěte funkci TimeZoneOffset k danému času.
Dejme tomu, že aktuální datum a čas je 15. červenec 2013, 13:02 v letním tichomořském čase (PDT, UTC-7). Aktuální čas ve standardu UTC zjistíte takto:
- DateAdd( Now(), TimeZoneOffset(), TimeUnit.Minutes )
TimeZoneOffset je výchozí na aktuální čas, takže mu nemusíte předávat argument.
K zobrazení výsledku použijte funkci Text s formátem dd-mm-yyyy hh:mm, která vrátí 15-07-2013 20:02.
Převod ze standardu UTC
Pokud chcete provést převod ze standardu UTC, odečtěte funkci TimeZoneOffset (přičtením její záporné hodnoty) od daného času.
Dejme tomu, že datum a čas 15. červenec 2013 20:02 ve standardu UTC je uložený v proměnné s názvem StartTime. Tento čas převedete do časového pásma uživatele takto:
- DateAdd( StartTime, −TimeZoneOffset( StartTime ), TimeUnit.Minutes )
Všimněte si záporného znaménka před funkcí TimeZoneOffset, díky kterému se posun nepřičte, ale odečte.
K zobrazení výsledku použijte funkci Text s formátemdd-mm-yyyy hh:mm, jejímž výsledkem bude 15-07-2013 13:02, pokud se nacházíte v letním tichomořském čase.