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 |
|
|
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. |
|
|
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. |
|
|
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 |
|
|
Minuto |
|
|
Segundo |
|
|
Milissegundo |
|
|
Microssegundo |
|
Valor de retorno
Retorna um valor BIGINT que representa um tempo em microssegundos.
Se
timenão for BIGINT, a função retornará erro.Se
date_partnão for constante, estiver em formato não suportado ou for de outro tipo de dados, a função retornará erro.Se
time,deltaoudate_partfor 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.