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

Funktionsweise von Ceiling() in PostgreSQL

In PostgreSQL die ceiling() Die Funktion dient zum Aufrunden einer Zahl auf die nächste Ganzzahl.

Es ist ähnlich wie round() , außer dass nur aufgerundet wird. Die round() Die Funktion rundet oder auf nach Bedarf herunterfahren.

Es ähnelt auch floor() , außer dass floor() rundet ab statt nach oben.

Syntax

Die ceiling() Die Funktion kann auf eine der folgenden Arten verwendet werden:

ceil(dp or numeric)
ceiling(dp or numeric)

Wobei dp zeigt double precision an .

Der Rückgabetyp ist derselbe wie der Eingabetyp.

Beide Syntaxen funktionieren genau gleich. Die erste Syntax ist einfach eine prägnantere Methode.

Beispiel

Hier ist ein Beispiel, um die Verwendung zu demonstrieren.

SELECT ceiling(12.10);

Ergebnis:

13

In diesem Fall sind die Sekundenbruchteile 10 und die Zahl wird auf die nächste ganze Zahl aufgerundet.

Es versteht sich wahrscheinlich von selbst, aber wenn ich die Sekundenbruchteile auf 50 erhöhe, wird immer noch aufgerundet.

SELECT ceiling(12.70);

Ergebnis:

13

Negative Zahlen

Hier ist ein Beispiel, das negative Zahlen verwendet.

SELECT 
  ceiling(-12.10),
  ceiling(-12.90);

Ergebnis:

 ceiling | ceiling
---------+---------
     -12 | -12

Ceil() vs. Ceiling()

Wie bereits erwähnt, ceil() und ceiling() sind gleichwertig.

Hier ist ein Beispiel, das beide Syntaxen nebeneinander zeigt.

SELECT 
  ceil(12.10),
  ceiling(12.10);

Ergebnis:

 ceil | ceiling
------+---------
   13 | 13

Ceiling() vs. Round()

Wenn ich round() verwendet hätte , der 12.10 Wert wäre abgerundet worden (weil die Sekundenbruchteile kleiner als 50 sind).

Hier ist ein Beispiel, das den Unterschied zwischen ceiling() veranschaulicht und round() .

SELECT 
  ceiling(12.10),
  round(12.10);

Ergebnis:

 ceiling | round
---------+-------
      13 | 12

Wenn ich jedoch die Sekundenbruchteile auf 50 erhöhe, geben beide das gleiche Ergebnis zurück.

SELECT 
  ceiling(12.50),
  round(12.50);

Ergebnis:

 ceiling | round
---------+-------
      13 | 13

Decke() vs. Boden()

Postgres hat auch einen floor() Funktion, die ceiling() ähnelt außer dass die Zahl immer abgerundet wird .

Hier ist ein Beispiel, das beide Syntaxen nebeneinander zeigt.

SELECT 
  ceiling(12.80),
  floor(12.80);

Ergebnis:

 ceiling | floor
---------+-------
      13 | 12

Und hier ist ein Beispiel, das negative Werte verwendet.

SELECT 
  ceiling(-12.30),
  floor(-12.30);

Ergebnis:

 ceiling | floor
---------+-------
     -12 | -13