In PostgreSQL is het ceiling()
functie wordt gebruikt om een getal naar boven af te ronden op het dichtstbijzijnde gehele getal.
Het is vergelijkbaar met round()
, behalve dat het alleen naar boven wordt afgerond. De round()
functie zal of . naar boven afronden omlaag indien nodig.
Het lijkt ook op floor()
, behalve dat floor()
rondt naar beneden af in plaats van omhoog.
Syntaxis
Het ceiling()
functie kan op een van de volgende manieren worden gebruikt:
ceil(dp or numeric)
ceiling(dp or numeric)
Waar dp
geeft double precision
. aan .
Het retourtype is hetzelfde als het invoertype.
Beide syntaxis werken precies hetzelfde. De eerste syntaxis is gewoon een beknoptere manier om het te doen.
Voorbeeld
Hier is een voorbeeld om het gebruik te demonstreren.
SELECT ceiling(12.10);
Resultaat:
13
In dit geval zijn de fractionele seconden 10 en wordt het getal naar boven afgerond op het dichtstbijzijnde gehele getal.
Het is waarschijnlijk vanzelfsprekend, maar als ik de fracties van seconden verhoog naar 50, rondt het nog steeds naar boven af.
SELECT ceiling(12.70);
Resultaat:
13
Negatieve getallen
Hier is een voorbeeld dat negatieve getallen gebruikt.
SELECT
ceiling(-12.10),
ceiling(-12.90);
Resultaat:
ceiling | ceiling ---------+--------- -12 | -12
Ceil() vs Plafond()
Zoals vermeld, ceil()
en ceiling()
gelijkwaardig zijn.
Hier is een voorbeeld waarin beide syntaxis naast elkaar worden weergegeven.
SELECT
ceil(12.10),
ceiling(12.10);
Resultaat:
ceil | ceiling ------+--------- 13 | 13
Plafond() vs Rond()
Als ik round()
. had gebruikt , de 12.10
waarde zou zijn afgerond naar beneden (omdat de fractionele seconden minder dan 50 zijn).
Hier is een voorbeeld dat het verschil illustreert tussen ceiling()
en round()
.
SELECT
ceiling(12.10),
round(12.10);
Resultaat:
ceiling | round ---------+------- 13 | 12
Als ik de fractionele seconden echter verhoog naar 50, geven ze allebei hetzelfde resultaat.
SELECT
ceiling(12.50),
round(12.50);
Resultaat:
ceiling | round ---------+------- 13 | 13
Plafond() vs Vloer()
Postgres heeft ook een floor()
functie, die vergelijkbaar is met ceiling()
behalve dat het getal altijd naar beneden wordt afgerond .
Hier is een voorbeeld waarin beide syntaxis naast elkaar worden weergegeven.
SELECT
ceiling(12.80),
floor(12.80);
Resultaat:
ceiling | floor ---------+------- 13 | 12
En hier is een voorbeeld dat negatieve waarden gebruikt.
SELECT
ceiling(-12.30),
floor(-12.30);
Resultaat:
ceiling | floor ---------+------- -12 | -13