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

MariaDB FLOOR() vs TRUNCATE()

MariaDB hat einen FLOOR() Funktion und ein TRUNCATE() Funktion, die abhängig vom genauen Wert ihrer Argumente dieselben oder unterschiedliche Ergebnisse zurückgeben kann.

Unten ist ein kurzer Überblick über den Unterschied zwischen FLOOR() und TRUNCATE() in MariaDB.

Der Unterschied

Hier ist der Unterschied zwischen den einzelnen Funktionen auf den Punkt gebracht:

  • FLOOR() gibt den größten ganzzahligen Wert zurück, der nicht größer als sein Argument ist.
  • TRUNCATE() kürzt sein Argument auf eine angegebene Anzahl von Dezimalstellen.

Syntax

Hier sind zunächst die Syntaxen der einzelnen Funktionen.

FLOOR()

Die Syntax für FLOOR() geht so:

FLOOR(X)

Es gibt den größten ganzzahligen Wert zurück, der nicht größer als X ist .

TRUNCATE()

Die Syntax für TRUNCATE() geht so:

TRUNCATE(X,D)

TRUNCATE() gibt die Zahl X zurück , abgeschnitten zu D Nachkommastellen.

Beispiel

Hier ist ein Vergleich, um den Unterschied zwischen FLOOR() zu demonstrieren und TRUNCATE() :

SELECT 
    FLOOR(-3.6789),
    TRUNCATE(-3.6789, 0);

Ergebnis:

+----------------+----------------------+
| FLOOR(-3.6789) | TRUNCATE(-3.6789, 0) |
+----------------+----------------------+
|             -4 |                   -3 |
+----------------+----------------------+

In diesem Fall ist die Zahl ein negativer Wert und das Ergebnis jeder Funktion ist unterschiedlich.

  • FLOOR() gab die größte Ganzzahl zurück (-4 ) Wert nicht größer als sein Argument.
  • Das TRUNCATE() Funktion hingegen schneidet die Zahl einfach an der angegebenen Dezimalstelle ab.

Gleiches Ergebnis

Beide Funktionen können manchmal das gleiche Ergebnis zurückgeben. Es hängt alles vom Wert der übergebenen Argumente ab.

Wenn wir die Zahlen in positive Werte ändern, liefern beide Funktionen das gleiche Ergebnis:

SELECT 
    FLOOR(3.6789),
    TRUNCATE(3.6789, 0);

Ergebnis:

+---------------+---------------------+
| FLOOR(3.6789) | TRUNCATE(3.6789, 0) |
+---------------+---------------------+
|             3 |                   3 |
+---------------+---------------------+

Das zweite Argument

Ein weiterer offensichtlicher Unterschied zwischen den beiden Funktionen besteht darin, dass TRUNCATE() akzeptiert/erfordert ein zweites Argument. Dies kann zu einem Ergebnis führen, das einen Bruchteil enthält.

FLOOR() gibt jedoch nur eine Ganzzahl zurück, sodass niemals ein Bruchteil zurückgegeben wird.

Beispiel

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

Ergebnis:

+---------------+---------------------+
| FLOOR(3.6789) | TRUNCATE(3.6789, 2) |
+---------------+---------------------+
|             3 |                3.67 |
+---------------+---------------------+

Das ROUND() Funktion

Beide Funktionen unterscheiden sich von ROUND() Funktion, die ihr Argument auf eine angegebene Anzahl von Dezimalstellen rundet.