No MariaDB,
FLOOR()
é uma função numérica interna que retorna o maior valor inteiro não maior que seu argumento. Sintaxe
A sintaxe fica assim:
FLOOR(X)
Onde
X
é o valor ao qual aplicar a operação. Exemplo
Aqui está um exemplo:
SELECT FLOOR(3.6789);
Resultado:
+---------------+ | FLOOR(3.6789) | +---------------+ | 3 | +---------------+
Passar um valor negativo produz o seguinte resultado:
SELECT FLOOR(-3.6789);
Resultado:
+----------------+ | FLOOR(-3.6789) | +----------------+ | -4 | +----------------+
Comparado com ROUND()
O
FLOOR()
função é diferente da ROUND()
função. O ROUND()
função arredondaria o número para cima em alguns casos e para baixo em outros. O FLOOR()
A função, por outro lado, sempre retorna o maior valor inteiro não maior que seu argumento. SELECT
FLOOR(3.6789),
ROUND(3.6789);
Resultado:
+---------------+---------------+ | FLOOR(3.6789) | ROUND(3.6789) | +---------------+---------------+ | 3 | 4 | +---------------+---------------+
Além disso,
ROUND()
nos permite especificar o número de casas decimais para arredondar:SELECT
FLOOR(3.6789),
ROUND(3.6789, 2);
Resultado:
+---------------+------------------+ | FLOOR(3.6789) | ROUND(3.6789, 2) | +---------------+------------------+ | 3 | 3.68 | +---------------+------------------+
FLOOR()
também é diferente do TRUNCATE()
função, que simplesmente trunca o número para uma determinada casa decimal. Argumentos não numéricos
Veja o que acontece quando fornecemos um argumento não numérico:
SELECT FLOOR('Ten');
Resultado:
+--------------+ | FLOOR('Ten') | +--------------+ | 0 | +--------------+ 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: 'Ten' | +---------+------+-----------------------------------------+
Argumentos ausentes
Chamando
FLOOR()
sem um argumento resulta em um erro:SELECT FLOOR();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FLOOR'