Convertit une chaîne de caractères VARCHAR représentant une date en une valeur TIMESTAMP, selon le fuseau horaire de l'environnement d'exécution Flink.
Syntaxe
TIMESTAMP TO_TIMESTAMP_TZ(VARCHAR date, VARCHAR timezone)
TIMESTAMP TO_TIMESTAMP_TZ(VARCHAR date, VARCHAR format, VARCHAR timezone)
La première version analyse le paramètre date à l'aide du format par défaut yyyy-MM-dd HH:mm:ss et l'interprète dans le fuseau horaire spécifié par le paramètre timezone.
La seconde version permet de spécifier un format personnalisé pour la chaîne de date d'entrée avant d'appliquer la conversion de fuseau horaire via le paramètre timezone.
Paramètres d'entrée
|
Paramètre |
Type de données |
Description |
|
|
VARCHAR |
La chaîne de date d'entrée. |
|
|
VARCHAR |
Le format de la chaîne de date d'entrée. Valeur par défaut : |
|
|
VARCHAR |
Le fuseau horaire de la date d'entrée, spécifié sous forme de nom IANA (par exemple, |
Remarques d'utilisation
Utilisez des noms de fuseaux horaires IANA pour le paramètre
timezone. Si une valeur non standard est fournie, le paramètre revient par défaut à UTC.Le paramètre
formats'applique uniquement à la seconde surcharge. Le format par défaut estyyyy-MM-dd HH:mm:ss.
Exemple
L'exemple suivant suppose que l'environnement d'exécution Flink fonctionne dans le fuseau horaire Asia/Shanghai (UTC+8).
Données de test — Table T1
|
timestamp1 (VARCHAR) |
format1 (VARCHAR) |
timezone1 (VARCHAR) |
|
1970-01-01 00:00:00 |
yyyy-MM-dd HH:mm:ss |
/ |
|
timestamp2 (VARCHAR) |
format2 (VARCHAR) |
timezone2 (VARCHAR) |
|
1970-01-01 00:00:00 |
yyyy-MM-dd HH:mm:ss |
Asia/Shanghai |
|
timestamp3 (VARCHAR) |
format3 (VARCHAR) |
timezone3 (VARCHAR) |
|
1970-01-01 00:00:00 |
yyyy-MM-dd HH:mm:ss |
America/New_York |
Instruction de test
SELECT
TO_TIMESTAMP_TZ(timestamp1, timezone1) AS var1, -- returns 1970-01-01 08:00:00
TO_TIMESTAMP_TZ(timestamp2, format2, timezone2) AS var2, -- returns 1970-01-01 00:00:00
TO_TIMESTAMP_TZ(timestamp3, format3, timezone3) AS var3 -- returns 1970-01-01 13:00:00
FROM T1;
Résultat du test
|
var1 (VARCHAR) |
var2 (VARCHAR) |
var3 (VARCHAR) |
|
1970-01-01 08:00:00 |
1970-01-01 00:00:00 |
1970-01-01 13:00:00 |
Explication des résultats
var1 : La valeur de
timezone1est/, ce qui constitue une valeur non standard. La fonction revient donc à UTC. L'environnement d'exécution Flink situé dans le fuseauAsia/Shanghai(UTC+8) affiche l'époque UTC1970-01-01 00:00:00sous la forme1970-01-01 08:00:00.var2 : La valeur de
timezone2estAsia/Shanghai, ce qui correspond au fuseau horaire de l'environnement d'exécution Flink. L'entrée étant déjà exprimée dans le fuseauAsia/Shanghai, la valeur TIMESTAMP reste inchangée :1970-01-01 00:00:00.var3 : La valeur de
timezone3estAmerica/New_York(UTC-5). Minuit à New York équivaut à1970-01-01 05:00:00UTC, heure que l'environnement d'exécution Flink situé dans le fuseauAsia/Shanghai(UTC+8) affiche comme1970-01-01 13:00:00.