Me gustaría saber cómo puedo generar un número con 2 decimales, sin redondear el número original.
Por ejemplo:
2229,999 -> 2229,99
Ya probé:
FORMAT(2229.999, 2)
CONVERT(2229.999, DECIMAL(4,2))
mysql
formatting
decimal
Tenza
fuente
fuente

DECIMAL(6,2))? 6- Precisión (número de dígitos totales) y 2 es el número de dígitos después del decimal?Respuestas:
Quieres usar el
TRUNCATEcomando.https://dev.mysql.com/doc/refman/8.0/en/mathematical-functions.html#function_truncate
fuente
Al formatear un número a 2 decimales, tiene dos opciones
TRUNCATEyROUND. Estás buscando laTRUNCATEfunción.Ejemplos:
Sin redondeo:
docs: http://www.w3resource.com/mysql/mathematical-functions/mysql-truncate-function.php
Con redondeo:
docs: http://www.w3resource.com/mysql/mathematical-functions/mysql-round-function.php
fuente
truncatepara formatear números cuando desee números truncados. ella dejó bastante claro en la pregunta que esto es lo que quería hacer. Hay muchas formas de redondeo (piso, techo, lejos de cero, hacia cero, mitad arriba, mitad abajo, mitad par). son apropiados en diferentes contextos.ROUNDfunción.¿Qué tal
CAST(2229.999 AS DECIMAL(6,2))obtener un decimal con 2 decimalesfuente
convert(2229.999 as decimal(4,2)).convert(2229.999, decimal(4,2)).Solo use la muestra format (number, qtyDecimals): format (1000, 2) result 1000.00
fuente
Así es como usé esto es como un ejemplo:
fuente
Mostrar como decimal Seleccione ifnull (formato (100.00, 1, 'en_US'), 0) 100.0
Mostrar como porcentaje Seleccione concat (ifnull (formato (100.00, 0, 'en_US'), 0), '%') 100%
fuente