sql >> Database >  >> RDS >> PostgreSQL

Hoe Floor() werkt in PostgreSQL

In PostgreSQL is de floor() functie wordt gebruikt om een ​​getal naar beneden af ​​te ronden op het dichtstbijzijnde gehele getal.

Het is eigenlijk het tegenovergestelde van ceiling() , waarmee een getal naar boven wordt afgerond .

Het lijkt ook op round() , behalve dat het alleen naar beneden wordt afgerond. De round() functie zal of . naar boven afronden omlaag indien nodig.

Syntaxis

De syntaxis gaat als volgt:

floor(dp or numeric)

Waar dp geeft double precision aan .

Het retourtype is hetzelfde als het invoertype.

Voorbeeld

Hier is een voorbeeld om het gebruik te demonstreren.

SELECT floor(3.99);

Resultaat:

3

In dit geval zijn de fractionele seconden 99 en wordt het getal naar beneden afgerond op het dichtstbijzijnde gehele getal.

Het is niet verrassend dat ik hetzelfde resultaat krijg als ik de fracties van seconden verklein om te zeggen 15.

SELECT floor(3.15);

Resultaat:

3

Negatieve getallen

Hier is een voorbeeld dat negatieve getallen gebruikt.

SELECT 
  floor(-3.99),
  floor(-3.15);

Resultaat:

 floor | floor
-------+-------
    -4 | -4

Verdieping() vs Ronde()

Hier is een voorbeeld dat het verschil illustreert tussen floor() en round() .

SELECT 
  floor(3.99),
  round(3.99);

Resultaat:

 floor | round
-------+-------
     3 | 4

Als ik de fractionele seconden echter verminder tot onder de 50, geven ze allebei hetzelfde resultaat.

SELECT 
  floor(3.49),
  round(3.49);

Resultaat:

 floor | round
-------+-------
     3 | 3

Vloer() versus plafond()

Postgres heeft ook een ceiling() functie, die vergelijkbaar is met floor() behalve dat het getal altijd naar boven 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

  1. MySQL Wijzig opgeslagen procedure

  2. IN-clausule met NULL of IS NULL

  3. docker postgres met initiële gegevens wordt niet bewaard tijdens commits

  4. Query met LEFT JOIN retourneert geen rijen voor telling van 0