In PostgreSQL der trunc()
Funktion schneidet eine Zahl ab.
Genauer gesagt wird die Zahl entweder gegen Null oder auf eine bestimmte Anzahl von Dezimalstellen gekürzt.
Syntax
Der trunc()
Die Funktion kann auf eine der folgenden Arten verwendet werden:
trunc(dp or numeric)
trunc(v numeric, s int)
Die erste Syntax schneidet die Zahl in Richtung Null ab.
Die zweite Syntax kürzt es auf eine bestimmte Anzahl von Dezimalstellen. In diesem Fall v
die Zahl ist, und s
ist die Anzahl der Dezimalstellen.
Beispiel der ersten Syntax
Hier ist ein Beispiel, das die erste Syntax verwendet.
SELECT trunc(342.49);
Ergebnis:
342
Beispiel für zweite Syntax
Hier ist ein Beispiel, das die zweite Syntax verwendet.
SELECT trunc(342.49, 1);
Ergebnis:
342.4
Sekundenbruchteile hinzufügen
Hier ist ein Beispiel für die Angabe einer Anzahl von Dezimalstellen, wenn die Zahl keine enthält.
SELECT trunc(342, 3);
Ergebnis:
342.000
Negative Zahlen
Hier ist ein Beispiel, das eine negative Zahl verwendet.
SELECT round(-4.5);
Ergebnis:
-5
Negative Dezimalstellen
Folgendes passiert, wenn das zweite Argument ein negativer Wert ist.
SELECT trunc(342, -2);
Ergebnis:
300
Trunc() vs. Round()
In manchen Fällen ist das trunc()
scheint ähnlich zu funktionieren wie round()
. Aber das sind ganz andere Funktionen.
Die round()
Funktion rundet die Zahl. Die Zahl wird auf die nächste ganze Zahl oder auf die angegebene Anzahl von Dezimalstellen gerundet (je nachdem, ob Sie ihr ein Argument oder zwei Argumente geben).
Der trunc()
Die Funktion hingegen schneidet die Zahl einfach in Richtung Null oder auf die angegebene Dezimalstelle ab. Es wird keine Rundung durchgeführt.
Hier ist ein Beispiel, um den Unterschied zu demonstrieren.
SELECT
round(342.49, 1),
trunc(342.49, 1);
Ergebnis: