MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment FLOOR() fonctionne dans MariaDB

Dans MariaDB, FLOOR() est une fonction numérique intégrée qui renvoie la plus grande valeur entière non supérieure à son argument.

Syntaxe

La syntaxe ressemble à ceci :

FLOOR(X)

X est la valeur à laquelle appliquer l'opération.

Exemple

Voici un exemple :

SELECT FLOOR(3.6789);

Résultat :

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

Passer une valeur négative produit le résultat suivant :

SELECT FLOOR(-3.6789);

Résultat :

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

Comparé à ROUND()

Le FLOOR() la fonction est différente de ROUND() une fonction. Le ROUND() fonction arrondirait le nombre vers le haut dans certains cas et vers le bas dans d'autres. Le FLOOR() fonction, d'autre part, renvoie toujours la plus grande valeur entière non supérieure à son argument.

SELECT 
    FLOOR(3.6789),
    ROUND(3.6789);

Résultat :

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

Aussi, ROUND() permet de spécifier le nombre de décimales à arrondir :

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

Résultat :

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

FLOOR() est également différent de TRUNCATE() fonction, qui tronque simplement le nombre à une décimale donnée.

Arguments non numériques

Voici ce qui se passe lorsque nous fournissons un argument non numérique :

SELECT FLOOR('Ten');

Résultat :

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

Vérifions l'avertissement :

SHOW WARNINGS;

Résultat :

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

Arguments manquants

Appel de FLOOR() sans argument génère une erreur :

SELECT FLOOR();

Résultat :

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