MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie FLOOR() in MariaDB funktioniert

In MariaDB FLOOR() ist eine eingebaute numerische Funktion, die den größten ganzzahligen Wert zurückgibt, der nicht größer als sein Argument ist.

Syntax

Die Syntax lautet wie folgt:

FLOOR(X)

Wobei X ist der Wert, auf den die Operation angewendet werden soll.

Beispiel

Hier ist ein Beispiel:

SELECT FLOOR(3.6789);

Ergebnis:

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

Das Übergeben eines negativen Werts führt zu folgendem Ergebnis:

SELECT FLOOR(-3.6789);

Ergebnis:

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

Im Vergleich zu ROUND()

Der FLOOR() Funktion unterscheidet sich von ROUND() Funktion. Das ROUND() Die Funktion würde die Zahl in einigen Fällen aufrunden und in anderen abrunden. Der FLOOR() Die Funktion hingegen gibt immer den größten ganzzahligen Wert zurück, der nicht größer als ihr Argument ist.

SELECT 
    FLOOR(3.6789),
    ROUND(3.6789);

Ergebnis:

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

Auch ROUND() ermöglicht es uns, die Anzahl der Dezimalstellen anzugeben, auf die gerundet werden soll:

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

Ergebnis:

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

FLOOR() unterscheidet sich auch von TRUNCATE() Funktion, die die Zahl einfach auf eine bestimmte Dezimalstelle kürzt.

Nicht numerische Argumente

Folgendes passiert, wenn wir ein nicht numerisches Argument angeben:

SELECT FLOOR('Ten');

Ergebnis:

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

Sehen wir uns die Warnung an:

SHOW WARNINGS;

Ergebnis:

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

Fehlende Argumente

Aufruf von FLOOR() ohne Argument führt zu einem Fehler:

SELECT FLOOR();

Ergebnis:

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