Sdílet prostřednictvím


Funkce ER CHANGETIMEZONE

Funkce CHANGETIMEZONE vrátí hodnotu typu DateTime v koordinovaném světovém čase (Greenwich Mean Time [GMT]), která je převedena na danou hodnotu datum/čas v jednom časovém pásmu na hodnotu datum/čas v jiném časovém pásmu.

Syntaxe

CHANGETIMEZONE (datetime, base time zone, target time zone)

Argumenty

datetime: DateTime

Hodnota data a času v časovém pásmu koordinovaný univerzální čas, která představuje hodnotu data a času, která se má převést.

base time zone: Řetězec

Název časového pásma, do kterého je daná hodnota data/času posunuta před převodem.

target time zone: Řetězec

Název časového pásma, do kterého je převedená hodnota data/času posunuta během převodu.

Vrácené hodnoty

Datum/čas

Výsledná hodnota data a času v koordinovaném univerzálním časovém pásmu.

Poznámky k použití

Chcete-li zadat zdrojová a cílová časová pásma, můžete použít názvy časových pásem, které jsou poskytnuty úřadem Internet Assigned Numbers Authority (IANA) nebo které jsou podporovány systémem Microsoft Windows.

Běhová výjimka „Časové pásmo '<time zone name>' neexistuje“ je vyvolána, pokud zadaný název není nalezen v seznamu IANA nebo v registru Windows.

U časových pásem, kde je dodržován letní čas, převod bere v úvahu posun letního času koordinovaného univerzálního času. Při převodu jsou použity nejnovější dostupné informace o tomto posunu.

Příklad 1

V tomto příkladu jsou použity názvy časových pásem pro Windows.

Nakonfigurujete zdroj dat DSX typu Vypočítané pole. Obsahuje následující výraz.

CONCATENATE(
    DATETIMEFORMAT( DSY, "O"), 
    " -> ", 
    DATETIMEFORMAT( CHANGETIMEZONE(DSY, "E. Europe Standard Time", "Hawaiian Standard Time"), "O")
)

Pokud nakonfigurujete výraz zdroje dat DSY typu Vypočítané pole jako DATETIMEVALUE ("01-Jun-2021 12:55:00", "dd-MMM-yyyy HH:mm:ss", "EN"), zdroj dat DSX vrátí text 2021-06-01T12:55:00.0000000+00:00 -> 2021-05-31T23:55:00.0000000+00:00. Tento text ukazuje, že časový rozdíl mezi dvěma poskytnutými časovými pásmy 1. června je více než 24 hodin. Převedená hodnota data a času je tedy o jeden den dřívější než daná hodnota data a času, protože základní časové pásmo je před cílovým časovým pásmem.

Pokud nakonfigurujete výraz zdroje dat DSY typu Vypočítané pole jako DATETIMEVALUE ("01-Dec-2021 12:55:00", "dd-MMM-yyyy HH:mm:ss", "EN"), zdroj dat DSX vrátí text 2021-12-01T12:55:00.0000000+00:00 -> 2021-12-01T00:55:00.0000000+00:00. Tento text ukazuje, že časový rozdíl mezi dvěma poskytnutými časovými pásmy 1. prosince je méně než 24 hodin. Převedená hodnota data a času se tedy rovná dané hodnotě data a času.

Poznámka

Stejný výraz vrátí různou odchylku mezi poskytnutými a převedenými hodnotami data a času pro stejnou dvojici časových pásem, protože pro zadaná časová pásma je v dané datum a čas pozorován jiný posun koordinovaného univerzálního času na letní čas.

Příklad 2

V tomto příkladu jsou použity názvy časových pásem IANA.

Nakonfigurujete zdroj dat DSX typu Vypočítané pole. Obsahuje následující výraz.

CONCATENATE(
    DATETIMEFORMAT( DSY, "O"), 
    " -> ", 
    DATETIMEFORMAT( CHANGETIMEZONE(DSY, "Europe/Athens", "US/Hawaii"), "O")
)

Pokud nakonfigurujete výraz zdroje dat DSY typu Vypočítané pole jako DATETIMEVALUE ("01-Jun-2021 12:55:00", "dd-MMM-yyyy HH:mm:ss", "EN"), zdroj dat DSX vrátí text 2021-06-01T12:55:00.0000000+00:00 -> 2021-05-31T23:55:00.0000000+00:00. Tento text ukazuje, že časový rozdíl mezi dvěma poskytnutými časovými pásmy 1. června je více než 24 hodin. Převedená hodnota data a času je tedy o jeden den dřívější než daná hodnota data a času, protože základní časové pásmo je před cílovým časovým pásmem.

Pokud nakonfigurujete výraz zdroje dat DSY typu Vypočítané pole jako DATETIMEVALUE ("01-Dec-2021 12:55:00", "dd-MMM-yyyy HH:mm:ss", "EN"), zdroj dat DSX vrátí text 2021-12-01T12:55:00.0000000+00:00 -> 2021-12-01T00:55:00.0000000+00:00. Tento text ukazuje, že časový rozdíl mezi dvěma poskytnutými časovými pásmy 1. prosince je méně než 24 hodin. Převedená hodnota data a času se tedy rovná dané hodnotě data a času.

Příklad 3

Nakonfigurujete zdroj dat DSX typu Vypočítané pole. Obsahuje následující výraz.

CONCATENATE(
    DATETIMEFORMAT( DSY, "O"), 
    " -> ", 
    DATETIMEFORMAT( CHANGETIMEZONE(DSY, "US/Hawaii", "Europe/Athens"), "O")
)

Pokud nakonfigurujete výraz zdroje dat DSY typu Vypočítané pole jako DATETIMEVALUE ("01-Jun-2021 12:55:00", "dd-MMM-yyyy HH:mm:ss", "EN"), zdroj dat DSX vrátí text 2021-06-01T12:55:00.0000000+00:00 -> 2021-06-02T01:55:00.0000000+00:00. Tento text ukazuje, že časový rozdíl mezi dvěma poskytnutými časovými pásmy 1. června je více než 24 hodin. Převedená hodnota data a času je tedy o jeden den pozdější než daná hodnota data a času, protože cílové časové pásmo je před základním časovým pásmem.

Příklad 4

Datum/časové razítko můžete obdržet z externího zdroje jako text, který neobsahuje žádné informace o časovém pásmu. Možná však znáte časové pásmo, ve kterém je zdroj provozován. Obdržíte například datum a čas 01/12/2021 12:55:00 ze služby, která je provozována ve Španělsku. Chcete-li správně uložit tuto hodnotu data/času do databáze, proveďte následující převod:

  • Nakonfigurujte zdroj dat DSY typu Vypočítané pole, chcete-li převést razítko data a času z textu na hodnotu data a času koordinovaného univerzálního času.

    DATETIMEVALUE ("01/12/2021 12:55:00", "dd/MM/yyyy HH:mm:ss", "ES")

  • Nakonfigurujte zdroj dat DSX typu Vypočítané pole, chcete-li změnit převedenou hodnotu data/času na koordinovaný univerzální čas jako hodnotu data/času časového pásma externího zdroje.

    CHANGETIMEZONE(DSY, "Romance Standard Time", "GMT Standard Time")

Poznámka

Když použijete funkci CHANGETIMEZONE pro převod data/času, mějte na paměti, že jakákoli hodnota data/času je uložena v databázi jako hodnota v koordinovaném univerzálním časovém pásmu. Než může být tato hodnota prezentována na stránkách aplikace, je transformována. Transformace bere v úvahu časové pásmo, které je nastaveno jako preferované pásmo pro aktuálně přihlášeného uživatele aplikace.

Další prostředky

Funkce data a času