MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como FLOOR() funciona no MariaDB


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'