Todos os produtos
Search
Central de documentação

MaxCompute:TIME_ADD

Última atualização: Jun 26, 2026

Adiciona um intervalo a um valor de tempo com base na unidade de tempo especificada.

Sintaxe

BIGINT TIME_ADD(BIGINT <time>, BIGINT <delta>, STRING <date_part>)

Exemplo:

-- Returns 5001234.
SELECT TIME_ADD(1234, 5, 'second');

Parâmetros

Parâmetro

Tipo

Obrigatório

Descrição

time

BIGINT

Sim

Valor de tempo em microssegundos. Use TO_TIME para construir esse valor. O tipo deve ser BIGINT; passar qualquer outro tipo gera erro. Na edição de tipos de dados do MaxCompute 1.0, valores STRING e DOUBLE são convertidos implicitamente para BIGINT antes do cálculo.

delta

BIGINT

Sim

Intervalo a adicionar. Um valor positivo soma ao tempo; um valor negativo subtrai dele. Na edição de tipos de dados do MaxCompute 1.0, valores STRING e DOUBLE são convertidos implicitamente para BIGINT antes do cálculo.

date_part

Constante STRING

Sim

Unidade de tempo. Deve ser uma constante de string. Valores não constantes, formatos não suportados ou tipos de dados incorretos geram erro.

Valores suportados para date_part:

Unidade de tempo

Valores

Hora

HOUR, hh

Minuto

MINUTE, mi

Segundo

SECOND, ss

Milissegundo

MILLIS, ff3

Microssegundo

MICROS, ff6

Valor de retorno

Retorna um valor BIGINT que representa um tempo em microssegundos.

  • Se time não for BIGINT, a função retornará erro.

  • Se date_part não for constante, estiver em formato não suportado ou for de outro tipo de dados, a função retornará erro.

  • Se time, delta ou date_part for NULL, o resultado será NULL.

Exemplos

Adicionar microssegundos

-- Returns 1239.
SELECT TIME_ADD(1234, 5, 'ff6');

Adicionar milissegundos

-- Enable MaxCompute V2.0 data types.
SET odps.sql.type.system.odps2 = true;

-- Returns 56680123456.
SELECT TIME_ADD(TO_TIME(TIMESTAMP_NTZ '2025-03-27 15:39:40.123456'), 5, 'ff3');

Adicionar segundos

-- Returns 56385000000.
SELECT TIME_ADD(TO_TIME(15,39,40), 5, 'second');

Adicionar horas

-- Enable MaxCompute V2.0 data types.
SET odps.sql.type.system.odps2 = true;

-- Returns 74380000000.
SELECT TIME_ADD(TO_TIME(TIMESTAMP '2025-03-27 15:39:40'), 5, 'hh');

Formatar o resultado como string de tempo legível

Use FORMAT_TIME para converter o valor retornado em microssegundos em um formato legível.

-- Returns 15:44:40.
SELECT FORMAT_TIME(TIME_ADD(TO_TIME('15:39:40', '%H:%M:%S'), 5, 'mi'), '%H:%M:%S');

Tratar entradas NULL

Se qualquer parâmetro for NULL, a função retorna NULL.

-- Returns NULL.
SELECT TIME_ADD(NULL, 5, 'second');

-- Returns NULL.
SELECT TIME_ADD(TO_TIME('15:39:40', '%H:%M:%S'), NULL, 'second');

-- Returns NULL.
SELECT TIME_ADD(TO_TIME('15:39:40', '%H:%M:%S'), 5, NULL);

-- Returns NULL.
SELECT TIME_ADD(NULL, NULL, NULL);

Funções relacionadas

Para outras funções de cálculo e conversão de tempo, consulte Funções de data e hora.