PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como Floor() funciona no PostgreSQL


No PostgreSQL, o floor() A função é usada para arredondar um número para baixo para o inteiro mais próximo.

É basicamente o oposto de ceiling() , que arredonda um número para cima .

Também é semelhante a round() , exceto que ele só arredonda para baixo. A round() função irá arredondar para cima ou para baixo conforme necessário.

Sintaxe


A sintaxe fica assim:
floor(dp or numeric)

Onde dp indica double precision .

O tipo de retorno é o mesmo que o tipo de entrada.

Exemplo


Aqui está um exemplo para demonstrar seu uso.
SELECT floor(3.99);

Resultado:
3

Nesse caso, os segundos fracionários são 99 e o número é arredondado para o inteiro mais próximo.

Não surpreendentemente, obtenho o mesmo resultado se diminuir os segundos fracionários para dizer, 15.
SELECT floor(3.15);

Resultado:
3

Números negativos


Aqui está um exemplo que usa números negativos.
SELECT 
  floor(-3.99),
  floor(-3.15);

Resultado:
 floor | floor
-------+-------
    -4 | -4

Andar() vs Redondo()


Aqui está um exemplo que ilustra a diferença entre floor() e round() .
SELECT 
  floor(3.99),
  round(3.99);

Resultado:
 floor | round
-------+-------
     3 | 4

No entanto, se eu diminuir os segundos fracionários para menos de 50, ambos retornarão o mesmo resultado.
SELECT 
  floor(3.49),
  round(3.49);

Resultado:
 floor | round
-------+-------
     3 | 3

Andar() vs Teto()


Postgres também tem um ceiling() função, que é semelhante a floor() exceto que sempre arredonda o número para cima .

Aqui está um exemplo que mostra ambas as sintaxes lado a lado.
SELECT 
  ceiling(12.80),
  floor(12.80);

Resultado:
 ceiling | floor
---------+-------
      13 | 12

E aqui está um exemplo que usa valores negativos.
SELECT 
  ceiling(-12.30),
  floor(-12.30);

Resultado:
 ceiling | floor
---------+-------
     -12 | -13