PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Funktionsweise von Trunc() in PostgreSQL

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:

Runde | trunc-------+-------342,5 | 342.4