sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo funciona Trunc() en PostgreSQL

En PostgreSQL, el trunc() función trunca un número.

Más específicamente, trunca el número hacia cero o hacia un número específico de lugares decimales.

Sintaxis

El trunc() La función se puede utilizar de cualquiera de las siguientes formas:

trunc(dp or numeric)
trunc(v numeric, s int)

La primera sintaxis trunca el número hacia cero.

La segunda sintaxis lo trunca a un número específico de lugares decimales. En este caso, v es el número, y s es el número de lugares decimales.

Ejemplo de primera sintaxis

Aquí hay un ejemplo que usa la primera sintaxis.

SELECT trunc(342.49);

Resultado:

342

Ejemplo de segunda sintaxis

Aquí hay un ejemplo que usa la segunda sintaxis.

SELECT trunc(342.49, 1);

Resultado:

342.4

Sumar fracciones de segundo

Este es un ejemplo de cómo especificar una cantidad de lugares decimales cuando el número no incluye ninguno.

SELECT trunc(342, 3);

Resultado:

342.000

Números negativos

Aquí hay un ejemplo que usa un número negativo.

SELECT round(-4.5);

Resultado:

-5

Posiciones decimales negativas

Esto es lo que sucede cuando el segundo argumento es un valor negativo.

SELECT trunc(342, -2);

Resultado:

300

Trunc() vs Redondo()

En algunos casos, el trunc() la función puede parecer que funciona de manera similar a round() . Pero son funciones bastante diferentes.

El round() función redondea el número. El número se redondea al entero más cercano o al número especificado de lugares decimales (dependiendo de si le da un argumento o dos argumentos).

El trunc() La función, por otro lado, simplemente trunca el número hacia cero o hasta el lugar decimal especificado. No se realiza el redondeo.

Aquí hay un ejemplo para demostrar la diferencia.

SELECT 
  round(342.49, 1),
  trunc(342.49, 1);

Resultado:

round | trunc
-------+-------
342.5 | 342.4