Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
| Functions | Platí pro |
|---|---|
| DateAdd DateDiff |
|
| TimeZoneOffset |
|
| Function | Platí pro |
|---|---|
| DateAdd | |
| DateDiff | |
| TimeZoneOffset |
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řidá k hodnotě data a času počet jednotek. 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 vrátí 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 vrátí počet minut mezi místním časem uživatele a standardem UTC (Coordinated Universal Time).
K převodu TimeZoneOffset mezi místním časem uživatele a standardem UTC (Coordinated Universal Time) můžete použít DateAdd převod mezi místním časem uživatele a standardem UTC (Coordinated Universal Time). Přidání TimeZoneOffset převede místní čas na UTC a odečte ho (sčítá záporná hodnota) z času UTC 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, Sčítání [, 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 [, Units ] )
- 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ý 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ý 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 vrátí pouze celý počet odečítaných jednotek a přesnost je uvedena v zadané jednotce. 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 převést na UTC (koordinovaný univerzální čas), přidejte TimeZoneOffset pro daný čas.
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 výchozí hodnota je aktuálního času, takže ho nemusíte předávat argumentem.
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 převést z UTC, odečtěte (tím, že sčítáte TimeZoneOffset záporné hodnoty) pro daný čas.
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 )
Před odečtením posunu odsazení si všimněte záporného znaménka TimeZoneOffset , nikoli jeho sčítání.
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.