Truncar (no redondear) lugares decimales en SQL Server
Estoy tratando de determinar la mejor manera de truncar o eliminar decimales adicionales en SQL sin redondear. Por ejemplo:
declare @value decimal(18,2)
set @value = 123.456
Esto se redondeará automáticamente @value
a 123.46
, lo cual es bueno en la mayoría de los casos. Sin embargo, para este proyecto, no necesito eso. ¿Existe una forma sencilla de truncar los decimales que no necesito? Sé que puedo usar la left()
función y convertirla nuevamente a decimal. ¿Hay otras maneras?
ROUND ( 123.456 , 2 , 1 )
Cuando el tercer parámetro ! = 0, se trunca en lugar de redondearse.
Sintaxis
ROUND ( numeric_expression , length [ ,function ] )
Argumentos
numeric_expression
Es una expresión de la categoría de tipo de datos numérico exacto o numérico aproximado, excepto el tipo de datos de bits.length
Es la precisión con la que se redondeará la expresión_numérica. length debe ser una expresión de tipo tinyint, smallint o int. Cuando la longitud es un número positivo, la expresión numérica se redondea al número de posiciones decimales especificadas por la longitud. Cuando la longitud es un número negativo, la expresión_numérica se redondea en el lado izquierdo del punto decimal, según lo especificado por la longitud.function
Es el tipo de operación a realizar. La función debe ser tinyint, smallint o int. Cuando la función se omite o tiene un valor de 0 (predeterminado), la expresión numérica se redondea. Cuando se especifica un valor distinto de 0, se trunca la expresión_numérica.
Deberá proporcionar 3 números a la función REDONDEAR.
- Número requerido. El número a redondear
- decimales obligatorios. El número de decimales para redondear el número a la operación.
- Opcional. Si es 0, redondea el resultado al número de decimales. Si es otro valor distinto de 0, trunca el resultado al número de decimales. El valor predeterminado es 0
Ejemplo:
select round(123.456, 2, 1)
Trabaja en:
- SQL Server (a partir de 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse
Información adicional: https://www.w3schools.com/sql/func_sqlserver_round.asp