sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona FLOOR() en MariaDB

En MariaDB, FLOOR() es una función numérica incorporada que devuelve el valor entero más grande que no sea mayor que su argumento.

Sintaxis

La sintaxis es así:

FLOOR(X)

Donde X es el valor al que aplicar la operación.

Ejemplo

He aquí un ejemplo:

SELECT FLOOR(3.6789);

Resultado:

+---------------+
| FLOOR(3.6789) |
+---------------+
|             3 |
+---------------+

Pasar un valor negativo produce el siguiente resultado:

SELECT FLOOR(-3.6789);

Resultado:

+----------------+
| FLOOR(-3.6789) |
+----------------+
|             -4 |
+----------------+

Comparado con ROUND()

El FLOOR() la función es diferente a ROUND() función. El ROUND() La función redondearía el número hacia arriba en algunos casos y hacia abajo en otros. El FLOOR() La función, por otro lado, siempre devuelve el valor entero más grande que no sea mayor que su argumento.

SELECT 
    FLOOR(3.6789),
    ROUND(3.6789);

Resultado:

+---------------+---------------+
| FLOOR(3.6789) | ROUND(3.6789) |
+---------------+---------------+
|             3 |             4 |
+---------------+---------------+

Además, ROUND() nos permite especificar el número de decimales a redondear:

SELECT 
    FLOOR(3.6789),
    ROUND(3.6789, 2);

Resultado:

+---------------+------------------+
| FLOOR(3.6789) | ROUND(3.6789, 2) |
+---------------+------------------+
|             3 |             3.68 |
+---------------+------------------+

FLOOR() también es diferente al TRUNCATE() función, que simplemente trunca el número a un lugar decimal dado.

Argumentos no numéricos

Esto es lo que sucede cuando proporcionamos un argumento no numérico:

SELECT FLOOR('Ten');

Resultado:

+--------------+
| FLOOR('Ten') |
+--------------+
|            0 |
+--------------+
1 row in set, 1 warning (0.000 sec)

Revisemos la advertencia:

SHOW WARNINGS;

Resultado:

+---------+------+-----------------------------------------+
| Level   | Code | Message                                 |
+---------+------+-----------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' |
+---------+------+-----------------------------------------+

Argumentos faltantes

Llamando a FLOOR() sin un argumento da como resultado un error:

SELECT FLOOR();

Resultado:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FLOOR'