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