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

Como Ceiling() funciona no PostgreSQL


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

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

Também é semelhante a floor() , exceto que floor() arredonda para baixo em vez de subir.

Sintaxe


O ceiling() A função pode ser usada de uma das seguintes maneiras:
ceil(dp or numeric)
ceiling(dp or numeric)

Onde dp indica double precision .

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

Ambas as sintaxes funcionam exatamente da mesma forma. A primeira sintaxe é simplesmente uma maneira mais concisa de fazer isso.

Exemplo


Aqui está um exemplo para demonstrar seu uso.
SELECT ceiling(12.10);

Resultado:
13

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

Provavelmente nem é preciso dizer, mas se eu aumentar os segundos fracionários para 50, ainda será arredondado.
SELECT ceiling(12.70);

Resultado:
13

Números negativos


Aqui está um exemplo que usa números negativos.
SELECT 
  ceiling(-12.10),
  ceiling(-12.90);

Resultado:
 ceiling | ceiling
---------+---------
     -12 | -12

Teto() vs Teto()


Como mencionado, ceil() e ceiling() são equivalentes.

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

Resultado:
 ceil | ceiling
------+---------
   13 | 13

Teto() vs Redondo()


Se eu estivesse usando round() , o 12.10 o valor teria sido arredondado para baixo (porque os segundos fracionários são menores que 50).

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

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

No entanto, se eu aumentar os segundos fracionários para 50, ambos retornarão o mesmo resultado.
SELECT 
  ceiling(12.50),
  round(12.50);

Resultado:
 ceiling | round
---------+-------
      13 | 13

Teto() vs Piso()


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

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