No MariaDB,
ABS()
é uma função numérica interna que retorna o valor absoluto (não negativo) de seu argumento. Sintaxe
A sintaxe fica assim:
ABS(X)
Onde
X
é o número em questão. Se X
não é um número, ele é convertido em um tipo numérico. Exemplo
Aqui está um exemplo:
SELECT ABS(300);
Resultado:
+----------+ | ABS(300) | +----------+ | 300 | +----------+
Obtemos o mesmo resultado se o número for negativo:
SELECT ABS(-300);
Resultado:
+-----------+ | ABS(-300) | +-----------+ | 300 | +-----------+
Argumento não numérico
Se o argumento não for um número, ele será convertido em um tipo numérico.
Exemplo:
SELECT ABS(DATE '2020-12-10');
Resultado:
+------------------------+ | ABS(DATE '2020-12-10') | +------------------------+ | 20201210 | +------------------------+
No entanto, isso depende do argumento/contexto.
Veja o que acontece quando eu omito
DATE
palavra-chave:SELECT ABS('2020-12-10');
Resultado:
+-------------------+ | ABS('2020-12-10') | +-------------------+ | 2020 | +-------------------+ 1 row in set, 1 warning (0.000 sec)
Vamos verificar o aviso:
SHOW WARNINGS;
Resultado:
+---------+------+------------------------------------------------+ | Level | Code | Message | +---------+------+------------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: '2020-12-10' | +---------+------+------------------------------------------------+
Argumento ausente
Chamando
ABS()
sem um argumento resulta em um erro:SELECT ABS();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'ABS'