Necesito convertir minutos a horas, redondeado a 2 decimales. También necesito mostrar solo hasta 2 números después del punto decimal. Entonces, si tengo minutos como 650, entonces las horas deberían ser 10.83
Esto es lo que tengo hasta ahora:
Select round(Minutes/60.0,2) from ....
Pero en este caso, si mis minutos son, digamos, 630 horas, son 10.5000000. Pero lo quiero solo como 10.50 (después del redondeo). ¿Cómo logro esto?
Respuestas:
¿No podrías lanzar tu resultado como
numeric(x,2)
? Dóndex <= 38
Devoluciones
fuente
SELECT ROUND(630/60.0, 2);
me da10.50
cast(630/60.0 as numeric(36,2))
es suficiente10,50
Al igual que con SQL Server 2012, puede usar la función de formato integrada :
(solo para lecturas adicionales ...)
fuente
1,757.47
puedes usar
fuente
fuente
fuente
fuente
Funciona tanto en postgresql como en Oracle
fuente
La siguiente consulta es útil y simple.
Da salida como 0.25.
fuente
Cualquier cosa que use en denominación debe estar en decimal, por ejemplo
1548/100
, dará15.00
Si reemplazamos
100
con100.0
en nuestro ejemplo, obtendremos15.48
fuente
Convierte tu número a
Numeric
oDecimal
.Reemplace su consulta con lo siguiente.
Servidor SQL
MySql:
La
Cast
función es un contenedor para laConvert
función. Combine eso con que SQL es un lenguaje interpretado y el resultado es que aunque las dos funciones producen los mismos resultados, hay algo más detrás de escena en laCast
función. Usar laConvert
función es un ahorro pequeño, pero los ahorros pequeños se multiplican.fuente
prueba esto :
SELECT CAST(ROUND([Amount 1]/60,2) AS DECIMAL(10,2)) as TOTAL
fuente
Como complemento de las respuestas a continuación, cuando use INT o tipos de datos no decimales en sus fórmulas, recuerde multiplicar el valor por 1 y el número de decimales que prefiera.
es decir,
TotalPackages
es anINT
y, por lo tanto, el denominadorTotalContainers
, pero quiero que mi resultado tenga hasta 6 decimales.así:
fuente
El siguiente fragmento podría ayudarte:
fuente
Encuentro que la función STR es el medio más limpio para lograr esto.
fuente