sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan fungerer Floor() i PostgreSQL

I PostgreSQL er floor() funktion bruges til at runde et tal ned til nærmeste heltal.

Det er dybest set det modsatte af ceiling() , som runder et tal op .

Det ligner også round() , bortset fra at det kun runder ned. round() funktionen runder eller op ned efter behov.

Syntaks

Syntaksen ser sådan ud:

floor(dp or numeric)

Hvor dp angiver double precision .

Returtypen er den samme som inputtypen.

Eksempel

Her er et eksempel for at demonstrere dets brug.

SELECT floor(3.99);

Resultat:

3

I dette tilfælde er brøksekunderne 99, og tallet rundes ned til nærmeste heltal.

Ikke overraskende får jeg det samme resultat, hvis jeg reducerer brøksekunderne til at sige 15.

SELECT floor(3.15);

Resultat:

3

Negative tal

Her er et eksempel, der bruger negative tal.

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

Resultat:

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

Etage() vs Round()

Her er et eksempel, der illustrerer forskellen mellem floor() og round() .

SELECT 
  floor(3.99),
  round(3.99);

Resultat:

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

Men hvis jeg reducerer brøksekunderne til under 50, returnerer de begge det samme resultat.

SELECT 
  floor(3.49),
  round(3.49);

Resultat:

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

Floor() vs Ceiling()

Postgres har også et ceiling() funktion, som ligner floor() bortset fra at det altid runder tallet op .

Her er et eksempel, der viser begge syntakser side om side.

SELECT 
  ceiling(12.80),
  floor(12.80);

Resultat:

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

Og her er et eksempel, der bruger negative værdier.

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

Resultat:

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

  1. Skal jeg slette eller deaktivere en række i en relationsdatabase?

  2. OLE DB-udbyder 'Microsoft.Jet.OLEDB.4.0' kan ikke bruges til distribuerede forespørgsler

  3. SQLite - JOIN-sætninger

  4. Sådan konverteres en streng til en dato i PostgreSQL