Todos os produtos
Search
Central de documentação

MaxCompute:Configurar um fuso horário

Última atualização: Jun 26, 2026

Configure o fuso horário de um projeto MaxCompute com o comando SET. Por padrão, o MaxCompute usa UTC+8 para todos os campos DATETIME, TIMESTAMP e DATE e para as funções de tempo integradas associadas.

Tipos de job compatíveis

A configuração de fuso horário aplica-se aos seguintes tipos de job:

  • MapReduce

  • Spark on MaxCompute

    • Tarefas enviadas ao cluster de computação do MaxCompute herdam automaticamente o fuso horário do projeto.

    • Tarefas executadas no modo cliente YARN (spark-shell, spark-sql ou pyspark) exigem configuração adicional do driver. No arquivo spark-defaults.conf, adicione spark.driver.extraJavaOptions -Duser.timezone=America/Los_Angeles e substitua America/Los_Angeles pelo fuso horário desejado.

  • Machine Learning Platform for AI (PAI)

  • Graph

Configure o fuso horário

O MaxCompute oferece dois escopos de configuração:

Escopo

Quem pode definir

Nível de sessão

Qualquer usuário

Nível de projeto

Somente o proprietário do projeto

Defina o fuso horário de uma sessão

Envie o comando SET odps.sql.timezone=<timezoneid>; junto com a instrução de consulta.

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

Para verifique o fuso horário ativo, execute SELECT getdate();:

SELECT getdate();

Saída esperada:

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

Defina o fuso horário de um projeto

Execute o seguinte comando como proprietário do projeto:

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

Após alterar o fuso horário do projeto, todos os cálculos de tempo passam a usar o novo fuso, inclusive nos dados de jobs existentes. Para minimizar impactos, configure o fuso horário do projeto apenas quando necessário e prefira aplicá-lo em projetos novos em vez de projetos ativos.

Limitações e observações de uso

Formato de fuso horário

Use nomes de fuso horário IANA, como Asia/Shanghai. Não use o formato de deslocamento GMT+9.

O formato GMT+N não oferece suporte ao horário de verão, o que pode causar cálculos de hora incorretos. Os nomes de fuso horário IANA gerenciam o horário de verão automaticamente e evitam ambiguidades.

Compatibilidade com SDK e cliente

  • Funções de data integradas do SQL, funções definidas pelo usuário (UDFs), tipos definidos pelo usuário (UDTs), junções definidas pelo usuário (UDJs) e a instrução SELECT TRANSFORM leem o atributo de fuso horário do projeto.

  • Se o fuso horário configurado no SDK for Java diferir do fuso horário do projeto, configure o fuso GMT no SDK para converter corretamente DATETIME em STRING.

  • Caso seu fuso horário local não seja UTC+8 durante a atualização do MaxCompute, atualize o SDK for Java e o cliente relacionado para as versões com o sufixo -oversea. Essa medida garante precisão e consistência nos resultados de SQL e nos dados transferidos por comandos Tunnel com datas posteriores a 1º de janeiro de 1900.

Diferenças em datetimes históricos

Ao configurar um fuso horário diferente de UTC+8, podem ocorrer diferenças entre a hora real e a saída das instruções SQL executadas no DataWorks:

Período

Diferença de tempo

Antes de 1º de janeiro de 1900

9 segundos

De 1º de janeiro de 1900 a 1º de janeiro de 1928

352 segundos

Após atualizar para as versões com sufixo -oversea:

  • Dados DATETIME anteriores a 1º de janeiro de 1900 ainda podem apresentar diferença de até 343 segundos.

  • Dados DATETIME anteriores a 1º de janeiro de 1928 carregados antes da atualização aparecerão 352 segundos mais cedo nas novas versões.

Sem a atualização para o sufixo -oversea:

  • Os resultados de SQL podem divergir dos dados transferidos por comandos Tunnel.

  • Antes de 1º de janeiro de 1900: diferença de 9 segundos.

  • De 1º de janeiro de 1900 a 1º de janeiro de 1928: diferença de 352 segundos.

Fuso horário do DataWorks

Alterar o fuso horário do SDK for Java ou do cliente não afeta o fuso horário do servidor DataWorks. Avalie o impacto dessa alteração nos jobs agendados do DataWorks. Fusos horários dos servidores DataWorks por região:

Região

Fuso horário

Japão (Tóquio)

GMT+9

Singapura (Singapura)

GMT+8

Clientes JDBC de terceiros

Ao conectar-se ao MaxCompute com um cliente de terceiros via Java Database Connectivity (JDBC), configure o fuso horário correspondente no cliente para manter a consistência com o servidor.