Bendrinti naudojant


CHANGETIMEZONE ER funkcija

Funkcija CHANGETIMEZONE grąžina DateTime vertę universaliuoju laiku (Grinvičo vidutinis laikas [GMT], kuri konvertuojama iš pateiktos datos / laiko vertės vienoje laiko zonoje į datos / laiko vertę kitoje laiko zonoje.

Sintaksė

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

Argumentai

datetime: Data ir laikas

Data / laiko vertė Universaliojo laiko laiko zonoje, nurodanti konvertuotiinę datos / laiko vertę.

base time zone: Eilutė

Laiko juostos pavadinimas, į kurį prieš konvertavimą perkeliama duota datos/laiko vertė.

target time zone: Eilutė

Laiko juostos pavadinimas, į kurį prieš konvertavimą perkeliama duota datos/laiko vertė.

Grįžimo vertės

Datetime

Gauta datos/laiko vertė universaliojo laiko zonoje.

Naudojimo pastabos

Norėdami nurodyti šaltinio ir paskirties laiko juostas, galite naudoti laiko zonų pavadinimus,kuriuos pateikia interneto priskirtų numerių institucija (DNS) arba kuriuos palaiko Microsoft Windows.

Apdorojimo laiku išimtis "<>Laiko juostos pavadinimas" neegzistuoja, jei pateiktas pavadinimas nerastas VZ., sąraše arba Windows registre.

Laiko juostoms, kuriose laikomasi vasaros laiko, konvertavimas atsižvelgia į Universaliojo laiko vasaros laiko korespondentinę sąskaitą. Naujausia turima informacija apie šį korespondentinę sąskaitą naudojama konvertavimo metu.

1 pavyzdys

Šiame pavyzdyje naudojami „Windows" laiko juostų pavadinimai.

Sukonfigūruojate DSX duomenų šaltinį, kurios tipas Apskaičiuotas laukas. Jame yra toliau nurodyta sąvoka.

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

Jei konfigūruojate apskaičiuoto lauko tipo DSYDATETIMEVALUE ("01-Jun-2021 12:55:00", "dd-MMM-yyyy HH:mm:ss", "EN") duomenų šaltinio išraišką kaip DSX duomenų šaltinis grąžina tekstą 2021-06-01T12:55:00.0000000+00:00 -> 2021-05-31T23:55:00.0000000+00:00. Šis tekstas rodo, kad laiko skirtumas tarp dviejų birželio 1 d. pateiktos laiko juostų yra didesnis nei 24 valandos. Todėl konvertuota data / laikas yra viena diena ankstesnė už nurodytą datos / laiko vertę, nes pagrindinė laiko juosta yra už tikslinės laiko zonos ribų.

Jei konfigūruojate apskaičiuoto lauko tipo DSYDATETIMEVALUE ("01-Dec-2021 12:55:00", "dd-MMM-yyyy HH:mm:ss", "EN") duomenų šaltinio išraišką kaip DSX duomenų šaltinis grąžina tekstą 2021-12-01T12:55:00.0000000+00:00 -> 2021-12-01T00:55:00.0000000+00:00. Šis tekstas rodo, kad laiko skirtumas tarp dviejų gruodžio 1 d. pateiktos laiko juostų yra mažesnis nei 24 valandos. Todėl konvertuota data / laikas lygus pateiktai datos / laiko vertei.

Banknotas

Ta pati išraiška pateikia skirtingus nukrypimus tarp pateiktos ir konvertuotos datos / laiko verčių tai pačiai laiko juostų porai, nes nurodytą datą / laiką laikomasi skirtingos Universaliojo laiko vasaros laiko poslinkio vertės.

2 pavyzdys

Šiame pavyzdyje naudojami „IANA" laiko juostų pavadinimai.

Sukonfigūruojate DSX duomenų šaltinį, kurios tipas Apskaičiuotas laukas. Jame yra toliau nurodyta sąvoka.

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

Jei konfigūruojate apskaičiuoto lauko tipo DSYDATETIMEVALUE ("01-Jun-2021 12:55:00", "dd-MMM-yyyy HH:mm:ss", "EN") duomenų šaltinio išraišką kaip DSX duomenų šaltinis grąžina tekstą 2021-06-01T12:55:00.0000000+00:00 -> 2021-05-31T23:55:00.0000000+00:00. Šis tekstas rodo, kad laiko skirtumas tarp dviejų birželio 1 d. pateiktos laiko juostų yra didesnis nei 24 valandos. Todėl konvertuota data / laikas yra viena diena ankstesnė už nurodytą datos / laiko vertę, nes pagrindinė laiko juosta yra už tikslinės laiko zonos ribų.

Jei konfigūruojate apskaičiuoto lauko tipo DSYDATETIMEVALUE ("01-Dec-2021 12:55:00", "dd-MMM-yyyy HH:mm:ss", "EN") duomenų šaltinio išraišką kaip DSX duomenų šaltinis grąžina tekstą 2021-12-01T12:55:00.0000000+00:00 -> 2021-12-01T00:55:00.0000000+00:00. Šis tekstas rodo, kad laiko skirtumas tarp dviejų gruodžio 1 d. pateiktos laiko juostų yra mažesnis nei 24 valandos. Todėl konvertuota data / laikas lygus pateiktai datos / laiko vertei.

3 pavyzdys

Sukonfigūruojate DSX duomenų šaltinį, kurios tipas Apskaičiuotas laukas. Jame yra toliau nurodyta sąvoka.

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

Jei konfigūruojate apskaičiuoto lauko tipo DSYDATETIMEVALUE ("01-Jun-2021 12:55:00", "dd-MMM-yyyy HH:mm:ss", "EN") duomenų šaltinio išraišką kaip DSX duomenų šaltinis grąžina tekstą 2021-06-01T12:55:00.0000000+00:00 -> 2021-06-02T01:55:00.0000000+00:00'. Šis tekstas rodo, kad laiko skirtumas tarp dviejų birželio 1 d. pateiktos laiko juostų yra didesnis nei 24 valandos. Todėl konvertuota data / laikas yra viena diena vėlesnė už nurodytą datos / laiko vertę, nes pagrindinė laiko juosta yra už tikslinės pagrindinio zonos ribų.

4 pavyzdys

Galite gauti datos / laiko antspaudą iš išorinio šaltinio kaip tekstą, kuriame nėra laiko juostos informacijos. Tačiau galite žinoti laiko juostą, kuriuo operuoja šaltinis. Pavyzdžiui, gaunate datos/laiko antspaudą 01/12/2021 12:55:00 iš aptarnavimo, kuris operuoja Ispanijoje. Norėdami tinkamai įrašyti šią datos /laiko vertę į duomenų bazę, atlikite šį konvertavimą:

  • Sukonfigūruokite apskaičiuoto lauko tipo DSY duomenų šaltinį, kad datos / laiko antspaudas būtų konvertuotas iš teksto į universaliojo laiko datos / laiko vertę.

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

  • Sukonfigūruokite apskaičiuoto lauko tipo DSX duomenų šaltinį, kad konvertuotos datos / laiko vertė būtų pakeista į Universalusis laikas kaip išorinio šaltinio laiko juostos data / laiko vertė.

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

Banknotas

Kai naudojate datos CHANGETIMEZONE /laiko konvertavimo funkciją, žinokite, kad bet kuri data/laikas duomenų bazėje saugoma kaip vertė universaliojo laiko zonoje. Prieš tai, kai šią vertę bus galima pateikti programos puslapiuose, ji transformuojama. Pakeitimas taikomas laiko juostai, kuri nustatoma kaip pageidaujama šiuo metu prisijungusio programos vartotojo zona.

Papildomi ištekliai

Datos ir laiko funkcijos