Cómo Truncar Decimales en SQL Server Sin Redondear

Al trabajar con valores decimales en SQL Server, a veces podrías encontrar la necesidad de gestionar la cantidad de decimales en tus datos. La función ROUND típica redondea el número, lo cual puede no ser adecuado para todos los escenarios. En esta publicación del blog, exploraremos cómo truncar los decimales en SQL Server sin redondearlos.

El Problema: Redondeo vs. Truncado

Imagina que tienes un valor decimal como 123.456, y deseas mantenerlo con dos decimales. Usar los métodos de redondeo estándar en SQL Server ajustará automáticamente el valor a 123.46. Sin embargo, hay situaciones en las que solo quieres eliminar los decimales adicionales, resultando en 123.45 en su lugar. Aquí es donde el truncado se vuelve esencial.

Echemos un vistazo rápido a un valor de muestra:

DECLARE @value DECIMAL(18,2);
SET @value = 123.456;

Después de ejecutar este código con el redondeo estándar, @value se convertiría en 123.46. Pero, ¿qué pasa si deseas mantenerlo como 123.45?

La Solución: Usando la Función ROUND

SQL Server proporciona una poderosa función ROUND que puede ayudarte a truncar los decimales. La función requiere tres parámetros:

  1. número: Este es el valor decimal que deseas truncar.
  2. decimales: Especifica cuántos decimales deseas mantener.
  3. operación: Este es opcional. Establece este parámetro en 0 para redondear el resultado o en cualquier otro valor (por ejemplo, 1) para truncarlo.

Ejemplo de Uso

Así es como puedes usar la función ROUND de manera efectiva:

SELECT ROUND(123.456, 2, 1);

En este caso, usar 1 como el tercer parámetro truncará el valor a 123.45, en vez de redondearlo.

Compatibilidad

La función ROUND con capacidades de truncado funciona en los siguientes entornos:

  • SQL Server (a partir de la versión 2008)
  • Azure SQL Database
  • Azure SQL Data Warehouse
  • Parallel Data Warehouse

Para más detalles, puedes consultar la documentación de W3Schools sobre la función ROUND en SQL Server.

Conclusión

Al usar la función ROUND con los parámetros apropiados, puedes truncar fácilmente los decimales en SQL Server sin redondear tus valores. Este método asegura que tengas un control preciso sobre la presentación de tus datos, manteniendo la integridad y la precisión requeridas para las necesidades específicas de tu proyecto.

¡Siéntete libre de probar esta técnica en tu propio entorno de SQL Server y asegúrate de que tus datos estén formateados justo como los necesitas!