Tous les produits
Search
Centre de documentation

MaxCompute:TO_TIMESTAMP_NTZ

Dernière mise à jour :Aug 10, 2026

TO_TIMESTAMP_NTZ convertit des données de date et d'heure de différents types en une valeur TIMESTAMP_NTZ. Trois surcharges sont disponibles : une entrée TIMESTAMP avec un fuseau horaire cible, une entrée STRING formatée et un décalage d'époque BIGINT.

Syntaxe

Surcharge 1 : Convertir TIMESTAMP en TIMESTAMP_NTZ

TIMESTAMP_NTZ TO_TIMESTAMP_NTZ(TIMESTAMP <timestamp>, STRING <time_zone>)

Surcharge 2 : Convertir une chaîne STRING formatée en TIMESTAMP_NTZ

TIMESTAMP_NTZ TO_TIMESTAMP_NTZ(STRING <date>, STRING <format> [, STRING <time_zone>])

Surcharge 3 : Convertir un décalage d'époque BIGINT en TIMESTAMP_NTZ

TIMESTAMP_NTZ TO_TIMESTAMP_NTZ(BIGINT <time>, STRING <date_part>)

Paramètres

Paramètres de la surcharge 1

Paramètre

Obligatoire

Type

Description

timestamp

Oui

TIMESTAMP

Valeur TIMESTAMP à convertir.

time_zone

Oui

STRING

Fuseau horaire cible. Pour les valeurs prises en charge, consultez la section Fuseaux horaires.

Paramètres de la surcharge 2

Paramètre

Obligatoire

Type

Description

date

Oui

STRING

Chaîne représentant la date et l'heure au format spécifié par format.

format

Oui

STRING

Modèle de format décrivant la structure de date. Consultez les Éléments de format ci-dessous.

time_zone

Non

STRING

Fuseau horaire de la chaîne d'entrée. La valeur par défaut est UTC si ce paramètre n'est pas spécifié. Pour les valeurs prises en charge, consultez la section Fuseaux horaires.

Paramètres de la surcharge 3

Paramètre

Obligatoire

Type

Description

time

Oui

BIGINT

Décalage temporel numérique à convertir.

date_part

Oui

STRING

Unité de la valeur time. Valeurs valides : MILLIS (millisecondes), MICROS (microsecondes), NANOS (nanosecondes).

Éléments de format

Le paramètre format de la surcharge 2 prend en charge les éléments suivants.

Éléments de date

Élément

Description

%Y / yyyy / YYYY

Année avec le siècle (par exemple, 2025).

%y

Année sans le siècle (00–99). Le zéro non significatif est facultatif.

%m / mm / MM

Mois sous forme de nombre décimal (01–12).

%B

Nom complet du mois (par exemple, January).

%b / %h

Nom abrégé du mois (par exemple, Jan).

%d / dd / DD

Jour du mois sous forme de nombre décimal (01–31).

%e

Jour du mois sans zéro non significatif (1–31). Par exemple, 2 au lieu de 02.

%F

Équivalent à %Y-%m-%d.

Éléments d'heure

Élément

Description

%H / hh / HH

Heure sur une horloge de 24 heures (00–23).

%M / mi / MI

Minute sous forme de nombre décimal (00–59).

%S / ss / SS

Seconde sous forme de nombre décimal (00–60).

%X

Heure au format HH:MM:SS.

%T

Équivalent à %H:%M:%S.

ff3

Millisecondes sous forme décimale à trois chiffres (000–999). Utilisez %S.ff3 pour correspondre à 00.123.

%Ez

Décalage numérique du fuseau horaire (+HH:MM ou -HH:MM).

%E<n>S

Secondes avec <n> décimales. Par exemple, %E3S correspond à 00.123.

%E*S

Secondes avec une précision complète de 6 chiffres. Par exemple, 00.123456.

Valeurs de retour

Valeurs de retour de la surcharge 1

Renvoie une valeur TIMESTAMP_NTZ dans le fuseau horaire spécifié.

Condition

Résultat

timestamp est NULL ou n'est pas une valeur TIMESTAMP

Erreur

time_zone est NULL

NULL

Valeurs de retour de la surcharge 2

Renvoie une valeur TIMESTAMP_NTZ. Le fuseau horaire de la session ou du projet n'affecte ni l'entrée ni la sortie.

Condition

Résultat

date, format ou time_zone est NULL

NULL

date ne correspond pas à format, ou format est invalide

NULL

Valeurs de retour de la surcharge 3

Renvoie une valeur TIMESTAMP_NTZ calculée en ajoutant time à l'époque 1970-01-01 00:00:00 UTC. Le fuseau horaire de la session ou du projet n'affecte ni l'entrée ni la sortie.

Condition

Résultat

time est NULL

Erreur

date_part est NULL

NULL

Notes d'utilisation

  • Fuseau horaire de la session et surcharge 1 : Lorsque vous transmettez une valeur TIMESTAMP, MaxCompute l'interprète dans le fuseau horaire actuel de la session ou du projet (odps.sql.timezone) avant de la convertir vers le fuseau horaire cible. La modification de odps.sql.timezone modifie le résultat.

  • Fuseau horaire de la session et surcharges 2 et 3 : Le fuseau horaire de la session ou du projet n'affecte pas la conversion. Le paramètre time_zone de la surcharge 2 et l'arithmétique basée sur l'époque de la surcharge 3 sont indépendants de odps.sql.timezone.

  • Gestion des valeurs NULL : Les surcharges 2 et 3 renvoient NULL pour les entrées NULL, à l'exception de time dans la surcharge 3, qui génère une erreur. La surcharge 1 génère une erreur lorsque timestamp est NULL.

  • Année manquante dans la surcharge 2 : Si la chaîne format omet un élément d'année, l'année est définie par défaut sur 1970.

Exemples

Convertir TIMESTAMP en TIMESTAMP_NTZ

Le fuseau horaire de la session est défini sur Asia/Shanghai. MaxCompute interprète l'entrée TIMESTAMP dans ce fuseau horaire et la convertit vers le fuseau horaire cible spécifié.

SET odps.sql.timezone=Asia/Shanghai;

-- Returns 2025-04-08 08:10:30.123456789
-- Asia/Shanghai (UTC+8) to Etc/GMT (UTC+0): subtract 8 hours
SELECT TO_TIMESTAMP_NTZ(TIMESTAMP '2025-04-08 16:10:30.123456789', 'Etc/GMT');

-- Returns 2025-04-08 17:10:30.123456789
-- Asia/Shanghai (UTC+8) to Asia/Tokyo (UTC+9): add 1 hour
SELECT TO_TIMESTAMP_NTZ(TIMESTAMP '2025-04-08 16:10:30.123456789', 'Asia/Tokyo');

-- Returns 2025-04-08 16:10:30.123456789
-- Same time zone: no offset applied
SELECT TO_TIMESTAMP_NTZ(TIMESTAMP '2025-04-08 16:10:30.123456789', 'Asia/Shanghai');

-- Returns NULL
SELECT TO_TIMESTAMP_NTZ(TIMESTAMP '2025-04-08 16:10:30.123456789', NULL);

Convertir une chaîne formatée en TIMESTAMP_NTZ

Le fuseau horaire de la session n'affecte pas ces requêtes. Le paramètre time_zone des deux derniers exemples contrôle la façon dont la chaîne d'entrée est interprétée.

SET odps.sql.timezone=Asia/Shanghai;

-- Returns 2017-11-11 00:00:00.123
SELECT TO_TIMESTAMP_NTZ('17-11-11 00:00:00.123', '%y-mm-dd hh:mi:ss.ff3');

-- Returns 2017-11-11 00:00:00.123
-- %y treats '0017' as year 17, then adds the century prefix: 2017
SELECT TO_TIMESTAMP_NTZ('0017-11-11 00:00:00.123', '%y-mm-dd hh:mi:ss.ff3');

-- Returns 1970-11-11 00:00:00.123
-- Year element is missing; defaults to 1970
SELECT TO_TIMESTAMP_NTZ('11-11 00:00:00.123', 'mm-dd hh:mi:ss.ff3');

-- Returns 2025-05-18 15:30:00
SELECT TO_TIMESTAMP_NTZ('2025-05-18 15:30:00 MAY', '%F %X %B');

-- Returns 2025-05-18 15:30:00
SELECT TO_TIMESTAMP_NTZ('2025-05-18 15:30:00 may', '%F %X %h');

-- Returns 2025-05-18 15:30:00
SELECT TO_TIMESTAMP_NTZ('2025-05-18 15:30:00 may', '%F %T %b');

-- Returns 2025-05-18 10:20:00
SELECT TO_TIMESTAMP_NTZ('20250518 10:20:00', 'yyyymm%e %T');

-- Returns 2025-05-18 02:30:00
-- Input includes a +07:00 offset; converted to UTC
SELECT TO_TIMESTAMP_NTZ('2025-05-18 09:30:00+07:00', '%F %H:%M:%S%Ez');

-- Returns 2025-04-08 16:10:30.123456
-- time_zone is Etc/GMT (UTC+0); no offset adjustment
SELECT TO_TIMESTAMP_NTZ('2025-04-08 16:10:30.123456', '%Y-%m-%d %H:%M:%E*S', 'Etc/GMT');

-- Returns 2025-04-08 08:10:30.123
-- Input is in Asia/Shanghai (UTC+8); converted to UTC
SELECT TO_TIMESTAMP_NTZ('2025-04-08 16:10:30.123', '%Y-%m-%d %H:%M:%E3S', 'Asia/Shanghai');

Convertir un décalage d'époque BIGINT en TIMESTAMP_NTZ

La fonction ajoute la valeur time à l'époque 1970-01-01 00:00:00 UTC. Le paramètre date_part contrôle l'unité. Les exemples suivants utilisent la même valeur BIGINT pour montrer comment l'unité affecte le résultat.

SET odps.sql.timezone=Asia/Shanghai;

-- Same input value (99999341234), three different units:

-- Returns 1973-03-03 09:35:41.234  (milliseconds)
SELECT TO_TIMESTAMP_NTZ(99999341234, 'MILLIS');

-- Returns 1970-01-02 03:46:39.341234  (microseconds)
SELECT TO_TIMESTAMP_NTZ(99999341234, 'MICROS');

-- Returns 1970-01-01 00:01:39.999341234  (nanoseconds)
SELECT TO_TIMESTAMP_NTZ(99999341234, 'NANOS');

-- Negative values represent offsets before the epoch
-- Returns 1966-10-31 14:24:18.766
SELECT TO_TIMESTAMP_NTZ(-99999341234, 'MILLIS');

-- Returns NULL
SELECT TO_TIMESTAMP_NTZ(99999341234, NULL);

Rubriques connexes

TO_TIMESTAMP_NTZ est une fonction de date. Pour d'autres fonctions de calcul et de conversion de dates, consultez la page Fonctions de date.