Todos os produtos
Search
Central de documentação

AnalyticDB:Funções numéricas

Última atualização: Jun 27, 2026

O AnalyticDB for MySQL oferece suporte às seguintes funções numéricas para operações aritméticas, de arredondamento, trigonométricas, logarítmicas e outras operações matemáticas em dados numéricos.

Índice de funções

Categoria

Função

Descrição

Aritmética

ABS

Retorna o valor absoluto

SIGN

Retorna o sinal de um número

SQRT

Retorna a raiz quadrada

EXP

Retorna e elevado à potência de x

POWER / POW

Retorna x elevado à potência de y

CRC32

Retorna o valor da verificação de redundância cíclica (CRC)

Arredondamento

CEILING / CEIL

Arredonda para cima até o inteiro mais próximo

FLOOR

Arredonda para baixo até o inteiro mais próximo

ROUND

Arredonda para um número especificado de casas decimais

Trigonométrica

SIN

Retorna o seno

COS

Retorna o cosseno

TAN

Retorna a tangente

COT

Retorna a cotangente

ASIN

Retorna o arco seno

ACOS

Retorna o arco cosseno

ATAN

Retorna o arco tangente

ATAN2

Retorna o arco tangente de x/y

DEGREES

Converte radianos em graus

RADIANS

Converte graus em radianos

PI

Retorna o valor de pi

Logarítmica

LN

Retorna o logaritmo natural

LOG

Retorna o logaritmo natural ou o logaritmo em uma base especificada

LOG2

Retorna o logaritmo na base 2

LOG10

Retorna o logaritmo na base 10

Aleatória

RAND

Retorna um número de ponto flutuante aleatório

ABS

abs(expr)

Retorna o valor absoluto de expr.

Argumentos

  • expr: Expressão numérica. Tipos aceitos: TINYINT, SMALLINT, INT, BIGINT, DOUBLE, FLOAT ou DECIMAL.

Tipo de retorno

Tipo de entrada

Tipo de retorno

TINYINT, SMALLINT, INT, BIGINT

BIGINT

DOUBLE, FLOAT

DOUBLE

DECIMAL

DECIMAL

Exemplos

SELECT abs(4.5);
+----------+
| abs(4.5) |
+----------+
|      4.5 |
+----------+
SELECT abs(-4);
+--------+
| abs(4) |
+--------+
|      4 |
+--------+

ACOS

acos(expr)

Retorna o arco cosseno de expr, em radianos.

Argumentos

  • expr: Valor DOUBLE. Deve estar no intervalo [-1, 1].

Tipo de retorno: DOUBLE.

Notas de uso

  • Se expr for maior que 1 ou menor que -1, a função retornará NULL.

Exemplo

SELECT acos(0.5);
+--------------------+
| acos(0.5)          |
+--------------------+
| 1.0471975511965979 |
+--------------------+

ASIN

asin(expr)

Retorna o arco seno de expr, em radianos.

Argumentos

  • expr: Valor DOUBLE. Deve estar no intervalo [-1, 1].

Tipo de retorno: DOUBLE.

Notas de uso

  • Se expr for maior que 1 ou menor que -1, a função retornará NULL.

Exemplo

SELECT asin(0.5);
+--------------------+
| asin(0.5)          |
+--------------------+
| 0.5235987755982989 |
+--------------------+

ATAN

atan(expr)

Retorna o arco tangente de expr, em radianos.

Argumentos

  • expr: Valor DOUBLE.

Tipo de retorno: DOUBLE.

Exemplo

SELECT atan(0.5);
+--------------------+
| atan(0.5)          |
+--------------------+
| 0.4636476090008061 |
+--------------------+

ATAN2

atan2(x, y)

Retorna o arco tangente de x dividido por y, em radianos.

Argumentos

  • x: Valor DOUBLE (numerador).

  • y: Valor DOUBLE (denominador).

Tipo de retorno: DOUBLE.

Exemplo

SELECT atan2(0.5, 0.3);
+--------------------+
| atan2(0.5,0.3)     |
+--------------------+
| 1.0303768265243125 |
+--------------------+

CEILING ou CEIL

ceiling(expr)
ceil(expr)

Retorna expr arredondado para cima até o inteiro mais próximo.

Argumentos

  • expr: Expressão numérica. Tipos aceitos: TINYINT, SMALLINT, INT, BIGINT, DOUBLE, FLOAT ou DECIMAL.

Tipo de retorno

Tipo de entrada

Tipo de retorno

TINYINT, SMALLINT, INT, BIGINT

BIGINT

DOUBLE, FLOAT

DOUBLE

DECIMAL

DECIMAL

Exemplos

SELECT ceiling(4);
+------------+
| ceiling(4) |
+------------+
|          4 |
+------------+
SELECT ceil(-4.5);
+------------+
| ceil(-4.5) |
+------------+
|         -4 |
+------------+

COS

cos(expr)

Retorna o cosseno de expr, onde expr está em radianos.

Argumentos

  • expr: Valor DOUBLE (ângulo em radianos).

Tipo de retorno: DOUBLE.

Exemplo

SELECT cos(1.3);
+---------------------+
| cos(1.3)            |
+---------------------+
| 0.26749882862458735 |
+---------------------+

COT

cot(expr)

Retorna a cotangente de expr, onde expr está em radianos.

Argumentos

  • expr: Valor DOUBLE (ângulo em radianos).

Tipo de retorno: DOUBLE.

Exemplo

SELECT cot(1.234);
+---------------------+
| cot(1.234)          |
+---------------------+
| 0.35013639786701445 |
+---------------------+

CRC32

crc32(expr)

Retorna o valor da verificação de redundância cíclica (CRC) de expr.

Argumentos

  • expr: Valor VARBINARY.

Tipo de retorno: BIGINT.

Exemplo

SELECT crc32('China');
+-----------------+
| crc32('China')  |
+-----------------+
|       737014929 |
+-----------------+

DEGREES

degrees(expr)

Converte expr de radianos para graus.

Argumentos

  • expr: Valor DOUBLE (ângulo em radianos).

Tipo de retorno: DOUBLE.

Exemplo

SELECT degrees(1.3);
+-------------------+
| degrees(1.3)      |
+-------------------+
| 74.48451336700703 |
+-------------------+

EXP

exp(expr)

Retorna e (base do logaritmo natural) elevado à potência de expr.

Argumentos

  • expr: Valor DOUBLE (expoente).

Tipo de retorno: DOUBLE.

Exemplo

SELECT exp(4.5);
+-------------------+
| exp(4.5)          |
+-------------------+
| 90.01713130052181 |
+-------------------+

FLOOR

floor(expr)

Retorna expr arredondado para baixo até o inteiro mais próximo.

Argumentos

  • expr: Expressão numérica. Tipos aceitos: TINYINT, SMALLINT, INT, BIGINT, DOUBLE, FLOAT ou DECIMAL.

Tipo de retorno

Tipo de entrada

Tipo de retorno

TINYINT, SMALLINT, INT, BIGINT

BIGINT

DOUBLE, FLOAT

DOUBLE

DECIMAL

DECIMAL

Notas de uso

  • O AnalyticDB for MySQL converte literais numéricos como 0.8 para DECIMAL. O tipo de retorno segue o tipo de entrada: floor(0.8) retorna um DECIMAL 0, não um inteiro 0.

  • Expressões de divisão como 4/5 são avaliadas como DOUBLE; portanto, floor(4/5) retorna 0.0 (DOUBLE). Para obter um resultado inteiro, envolva a saída em uma função CAST.

Exemplos

SELECT floor(7);
+----------+
| floor(7) |
+----------+
|        7 |
+----------+

floor(0.8): a entrada 0.8 é tratada como DECIMAL, então o tipo de retorno é DECIMAL:

SELECT floor(0.8);
+-------------+
| floor(0.8)  |
+-------------+
|           0 |
+-------------+

floor(4/5): a expressão 4/5 é avaliada como DOUBLE, então o tipo de retorno é DOUBLE:

SELECT floor(4/5);
+-------------+
| floor(4/5)  |
+-------------+
|         0.0 |
+-------------+

LN

ln(expr)

Retorna o logaritmo natural de expr.

Argumentos

  • expr: Valor DOUBLE.

Tipo de retorno: DOUBLE.

Exemplo

SELECT ln(2.718281828459045);
+-----------------------+
| ln(2.718281828459045) |
+-----------------------+
|                   1.0 |
+-----------------------+

LOG

log(expr)
log(base, expr)

Retorna o logaritmo de expr. Com um argumento, retorna o logaritmo natural. Com dois argumentos, retorna o logaritmo de expr na base especificada.

Argumentos

  • expr: Valor DOUBLE (expressão de entrada).

  • base (opcional): Valor DOUBLE (base do logaritmo).

Tipo de retorno: DOUBLE.

Exemplos

Logaritmo natural de 16:

SELECT log(16);
+-------------------+
| log(16)           |
+-------------------+
| 2.772588722239781 |
+-------------------+

Logaritmo de 100 na base 10:

SELECT log(10, 100);
+-------------+
| log(10,100) |
+-------------+
|         2.0 |
+-------------+

LOG2

log2(expr)

Retorna o logaritmo na base 2 de expr.

Argumentos

  • expr: Valor DOUBLE.

Tipo de retorno: DOUBLE.

Exemplo

SELECT log2(8.7654);
+-------------------+
| log2(8.7654)      |
+-------------------+
| 3.131819928389146 |
+-------------------+

LOG10

log10(expr)

Retorna o logaritmo na base 10 de expr.

Argumentos

  • expr: Valor DOUBLE.

Tipo de retorno: DOUBLE.

Exemplo

SELECT log10(100.876);
+--------------------+
| log10(100.876)     |
+--------------------+
| 2.0037878529824615 |
+--------------------+

PI

pi()

Retorna o valor de pi (razão entre a circunferência de um círculo e seu diâmetro).

Tipo de retorno: DOUBLE.

Exemplo

SELECT pi();
+-------------------+
| pi()              |
+-------------------+
| 3.141592653589793 |
+-------------------+

POWER ou POW

power(x, y)
pow(x, y)

Retorna x elevado à potência de y.

Argumentos

  • x: Valor DOUBLE (base).

  • y: Valor DOUBLE (expoente).

Tipo de retorno: DOUBLE.

Exemplos

SELECT power(1.2, 3.4);
+-------------------+
| power(1.2,3.4)    |
+-------------------+
| 1.858729691979481 |
+-------------------+
SELECT pow(-2, -3);
+------------+
| pow(-2,-3) |
+------------+
|     -0.125 |
+------------+

RADIANS

radians(expr)

Converte expr de graus para radianos.

Argumentos

  • expr: Valor DOUBLE (ângulo em graus).

Tipo de retorno: DOUBLE.

Exemplo

SELECT radians(60.0);
+--------------------+
| radians(60.0)      |
+--------------------+
| 1.0471975511965976 |
+--------------------+

RAND

rand()
rand() * (y - x) + x

Retorna um número de ponto flutuante aleatório. rand() retorna um valor no intervalo [0, 1). Para obter um número aleatório em um intervalo personalizado [x, y), use rand() * (y - x) + x.

Tipo de retorno: DOUBLE.

Notas de uso

  • rand() não aceita argumentos.

  • O resultado tem distribuição uniforme: maior ou igual a x e menor que y.

Exemplos

Número aleatório no intervalo [0, 1):

SELECT rand();
+--------------------+
| rand()             |
+--------------------+
| 0.6613712594764614 |
+--------------------+

Número aleatório no intervalo [3, 12):

SELECT rand() * (12 - 3) + 3;
+-------------------+
| rand()*(12-3)+3   |
+-------------------+
| 9.073329270781976 |
+-------------------+

ROUND

round(expr [, scale])

Retorna expr arredondado para scale casas decimais. O valor padrão de scale é 0. O tipo de retorno corresponde ao tipo de entrada.

Argumentos

  • expr: Expressão numérica a ser arredondada. Tipos aceitos: TINYINT, SMALLINT, INT, BIGINT, DOUBLE, FLOAT ou DECIMAL.

  • scale (opcional): Inteiro que especifica o número de casas decimais. O padrão é 0.

Tipo de retorno

Tipo de entrada

Tipo de retorno

TINYINT, SMALLINT, INT, BIGINT

BIGINT

DOUBLE, FLOAT

DOUBLE

DECIMAL

DECIMAL

Notas de uso

  • Se expr for NULL, a função retornará NULL.

  • Quando scale for maior que 0, o resultado será arredondado para esse número de casas decimais.

  • Caso scale seja igual a 0, o resultado será arredondado para o inteiro mais próximo.

  • Se scale for menor que 0, o resultado será arredondado para esse número de casas à esquerda do ponto decimal. Por exemplo, scale = -1 arredonda para a dezena mais próxima.

Exemplos

Arredondar para o inteiro mais próximo (scale = 0):

SELECT round(345.983, 0);
+------------------+
| round(345.983,0) |
+------------------+
|          346.000 |
+------------------+

Arredondar para uma casa decimal (scale = 1):

SELECT round(345.123, 1);
+------------------+
| round(345.123,1) |
+------------------+
|          345.100 |
+------------------+

Arredondar para uma casa à esquerda do ponto decimal (scale = -1):

SELECT round(344.984, -1);
+-------------------+
| round(344.984,-1) |
+-------------------+
|           340.000 |
+-------------------+

Arredondar para quatro casas à esquerda do ponto decimal (scale = -4):

SELECT round(345.984, -4);
+-------------------+
| round(345.984,-4) |
+-------------------+
|             0.000 |
+-------------------+

SIGN

sign(expr)

Retorna o sinal de expr como um inteiro: 1 para positivo, 0 para zero e -1 para negativo.

Argumentos

  • expr: Expressão numérica. Tipos aceitos: TINYINT, SMALLINT, INT, BIGINT, DOUBLE, FLOAT ou DECIMAL.

Tipo de retorno: BIGINT.

Exemplos

SELECT sign(12);
+----------+
| sign(12) |
+----------+
|        1 |
+----------+
SELECT sign(-4.5);
+------------+
| sign(-4.5) |
+------------+
|         -1 |
+------------+

SIN

sin(expr)

Retorna o seno de expr, onde expr está em radianos.

Argumentos

  • expr: Valor DOUBLE (ângulo em radianos).

Tipo de retorno: DOUBLE.

Exemplo

SELECT sin(1.234);
+--------------------+
| sin(1.234)         |
+--------------------+
| 0.9438182093746337 |
+--------------------+

SQRT

sqrt(expr)

Retorna a raiz quadrada de expr.

Argumentos

  • expr: Valor DOUBLE.

Tipo de retorno: DOUBLE.

Exemplo

SELECT sqrt(4.222);
+-------------------+
| sqrt(4.222)       |
+-------------------+
| 2.054750593137766 |
+-------------------+

TAN

tan(expr)

Retorna a tangente de expr, onde expr está em radianos.

Argumentos

  • expr: Valor DOUBLE (ângulo em radianos).

Tipo de retorno: DOUBLE.

Exemplo

SELECT tan(8);
+--------------------+
| tan(8)             |
+--------------------+
| -6.799711455220379 |
+--------------------+