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

Como Trunc() funciona no PostgreSQL


No PostgreSQL, o trunc() função trunca um número.

Mais especificamente, ele trunca o número para zero ou para um número específico de casas decimais.

Sintaxe


O trunc() A função pode ser usada de uma das seguintes maneiras:
trunc(dp or numeric)
trunc(v numeric, s int)

A primeira sintaxe trunca o número em direção a zero.

A segunda sintaxe o trunca para um número especificado de casas decimais. Nesse caso, v é o número e s é o número de casas decimais.

Exemplo da primeira sintaxe


Aqui está um exemplo que usa a primeira sintaxe.
SELECT trunc(342.49);

Resultado:
342

Exemplo de segunda sintaxe


Aqui está um exemplo que usa a segunda sintaxe.
SELECT trunc(342.49, 1);

Resultado:
342.4

Adicionando segundos fracionários


Aqui está um exemplo de especificação de um número de casas decimais quando o número não inclui nenhuma.
SELECT trunc(342, 3);

Resultado:
342.000

Números negativos


Aqui está um exemplo que usa um número negativo.
SELECT round(-4.5);

Resultado:
-5

Casas decimais negativas


Aqui está o que acontece quando o segundo argumento é um valor negativo.
SELECT trunc(342, -2);

Resultado:
300

Trunc() vs Round()


Em alguns casos, o trunc() a função pode parecer funcionar de maneira semelhante a round() . Mas são funções bem diferentes.

A round() função arredonda o número. O número é arredondado para o inteiro mais próximo ou para o número especificado de casas decimais (dependendo se você fornecer um argumento ou dois argumentos).

O trunc() Por outro lado, a função simplesmente trunca o número para zero ou para a casa decimal especificada. Nenhum arredondamento é realizado.

Aqui está um exemplo para demonstrar a diferença.
SELECT 
  round(342.49, 1),
  trunc(342.49, 1);

Resultado:
round | trunc
-------+-------
342.5 | 342.4