Tous les produits
Search
Centre de documentation

MaxCompute:Configuration du fuseau horaire

Dernière mise à jour :Aug 10, 2026

Configurez le fuseau horaire d'un projet MaxCompute à l'aide de la commande SET. Par défaut, MaxCompute utilise le fuseau UTC+8 pour tous les champs DATETIME, TIMESTAMP et DATE, ainsi que pour les fonctions temporelles natives associées.

Types de tâches pris en charge

La configuration du fuseau horaire s'applique aux types de tâches suivants :

  • MapReduce

  • Spark on MaxCompute

    • Les tâches soumises au cluster de calcul MaxCompute héritent automatiquement du fuseau horaire du projet.

    • Les tâches exécutées en mode client YARN (spark-shell, spark-sql ou pyspark) nécessitent une configuration supplémentaire du pilote. Dans le fichier spark-defaults.conf, ajoutez l'option spark.driver.extraJavaOptions -Duser.timezone=America/Los_Angeles en remplaçant America/Los_Angeles par le fuseau horaire souhaité.

  • Machine Learning Platform for AI (PAI)

  • Graph

Configuration du fuseau horaire

MaxCompute prend en charge deux niveaux de configuration :

Niveau Qui peut le définir
Niveau session Tout utilisateur
Niveau projet Propriétaire du projet uniquement

Définition du fuseau horaire pour une session

Soumettez la commande SET odps.sql.timezone=<timezoneid>; conjointement avec votre requête SQL.

-- Set the time zone to Asia/Tokyo for this session.
SET odps.sql.timezone=Asia/Tokyo;

Pour vérifier le fuseau horaire actif, exécutez la commande SELECT getdate(); :

SELECT getdate();

Résultat attendu :

+---------------------+
| _c0                 |
+---------------------+
| 2018-10-30 23:49:50 |
+---------------------+

Définition du fuseau horaire pour un projet

Exécutez la commande suivante en tant que propriétaire du projet :

setProject odps.sql.timezone=<timezoneid>;
Important

Après modification du fuseau horaire du projet, tous les calculs temporels utiliseront ce nouveau paramètre, y compris pour les données des tâches existantes. Afin de minimiser l'impact, configurez le fuseau horaire du projet uniquement lorsque cela est nécessaire et privilégiez cette opération lors de la création de nouveaux projets plutôt que sur des projets actifs.

Limitations et remarques d'utilisation

Format du fuseau horaire

Utilisez les noms de fuseaux horaires IANA, tels que Asia/Shanghai. N'utilisez pas le format de décalage GMT+9.

Le format GMT+N ne prend pas en charge l'heure d'été, ce qui peut entraîner des erreurs de calcul. Les noms de fuseaux horaires IANA gèrent automatiquement les changements d'heure et évitent toute ambiguïté.

Compatibilité SDK et clients

  • Les fonctions natives de date SQL, les fonctions définies par l'utilisateur (UDF), les types définis par l'utilisateur (UDT), les jointures définies par l'utilisateur (UDJ) et l'instruction SELECT TRANSFORM peuvent tous lire l'attribut de fuseau horaire du projet.

  • Si le fuseau horaire configuré dans le SDK pour Java diffère de celui du projet, définissez le fuseau GMT dans le SDK afin de convertir correctement les données DATETIME en STRING.

  • Si votre fuseau horaire local n'est pas UTC+8 lors de la mise à jour de MaxCompute, mettez à jour le SDK pour Java et le client associé vers les versions portant le suffixe -oversea. Cela garantit l'exactitude et la cohérence des résultats SQL et des données transférées via les commandes Tunnel pour les dates postérieures au 1er janvier 1900.

Différences historiques pour les données datetime

Après configuration d'un fuseau horaire autre que UTC+8, des écarts peuvent apparaître entre l'heure réelle et le résultat des instructions SQL exécutées dans DataWorks :

Plage de dates Écart temporel
Avant le 1er janvier 1900 9 secondes
Du 1er janvier 1900 au 1er janvier 1928 352 secondes

Après mise à jour vers les versions avec le suffixe -oversea :

  • Les données DATETIME antérieures au 1er janvier 1900 peuvent encore présenter un écart allant jusqu'à 343 secondes.

  • Les données DATETIME antérieures au 1er janvier 1928, chargées avant la mise à jour, apparaîtront avec 352 secondes d'avance dans les nouvelles versions.

Sans mise à jour vers le suffixe -oversea :

  • Les résultats SQL peuvent différer des données transférées par les commandes Tunnel.

  • Avant le 1er janvier 1900 : écart de 9 secondes.

  • Du 1er janvier 1900 au 1er janvier 1928 : écart de 352 secondes.

Fuseau horaire de DataWorks

La modification du fuseau horaire du SDK pour Java ou du client n'affecte pas le fuseau horaire du serveur DataWorks. Évaluez l'impact sur vos tâches planifiées DataWorks. Fuseaux horaires des serveurs DataWorks par région :

Région Fuseau horaire
Japon (Tokyo) GMT+9
Singapour (Singapour) GMT+8

Clients JDBC tiers

Si vous vous connectez à MaxCompute via un client tiers utilisant JDBC (Java Database Connectivity), configurez le fuseau horaire correspondant sur le client afin de maintenir la cohérence avec le serveur.