SQL – Arrotondamento a 2 cifre decimali

Devo convertire i minuti in ore, arrotondati a 2 cifre decimali. Devo anche visualizzare solo fino a 2 numeri dopo il punto decimale. Quindi se ho minuti come 650.Queste ore dovrebbero essere 10,83

Ecco cosa ho finora:

Select round(Minutes/60.0,2) from .... 

Ma in questo caso, se i miei minuti sono, per esempio, 630 ore è 10.5000000. Ma lo voglio solo a 10.50 (dopo l’arrotondamento). Come ottengo questo?

Non potresti trasmettere il tuo risultato come numeric(x,2) ? Dove x <= 38

 select round(630/60.0,2), cast(round(630/60.0,2) as numeric(36,2)) 

ritorna

 10.500000 10.50 

Come con SQL Server 2012, è ansible utilizzare la funzione di formattazione integrata :

 SELECT FORMAT(Minutes/60.0, 'N2') 

(solo per ulteriori letture …)

Puoi usare

 select cast((630/60.0) as decimal(16,2)) 
 Declare @number float = 35.44987665; Select round(@number,2) 

La seguente query è utile e semplice-

 declare @floatExchRate float; set @floatExchRate=(select convert(decimal(10, 2), 0.2548712)) select @floatExchRate 

Fornisce l’output come 0,25.

 DECLARE @porcentaje FLOAT SET @porcentaje = (CONVERT(DECIMAL,ABS(8700)) * 100) / CONVERT(DECIMAL,ABS(37020)) SELECT @porcentaje 

Funziona sia con Postgresql che con Oracle

 SELECT ename, sal, round(((sal * .15 + comm) /12),2) FROM emp where job = 'SALESMAN' 

Il seguente frammento potrebbe aiutarti a:

 select SUBSTR(ENDDTTM,1, 9), extract(DAY FROM (ENDDTTM)), ENDDTTM, BEGINDTTM, (ENDDTTM - BEGINDTTM),substr(BEGINDTTM, 1,15), substr((ENDDTTM - BEGINDTTM), 12, 8), round((substr((ENDDTTM - BEGINDTTM), 12, 2)* 3600 + substr((ENDDTTM - BEGINDTTM), 15, 2)*60 + substr((ENDDTTM - BEGINDTTM), 18, 2)),2) as seconds, round((substr((ENDDTTM - BEGINDTTM), 12, 2)* 60 + substr((ENDDTTM - BEGINDTTM), 15, 2) + substr((ENDDTTM - BEGINDTTM), 18, 2)/60 ), 2)as minutes, round((substr((ENDDTTM - BEGINDTTM), 12, 2) + substr((ENDDTTM - BEGINDTTM), 15, 2)/60 + substr((ENDDTTM - BEGINDTTM), 18, 2)/3600 ),2) as hours 

Quello che usi in denominazione dovrebbe essere in decimale, ad esempio 1548/100 darà 15.00

Se sostituiamo 100 con 100.0 nel nostro esempio, otterremo 15.48

 select 1548/100 15.00000 select 1548/100.0 15.4800 0 

prova questo: SELECT CAST(ROUND([Amount 1]/60,2) AS DECIMAL(10,2)) as TOTAL

Converti il ​​tuo numero in Numeric o Decimal .

Sostituisci la tua domanda con il seguente.

Server SQL

 Select Convert(Numeric(38, 2), Minutes/60.0) from .... 

MySql:

 Select Convert(Minutes/60.0, Decimal(65, 2)) from .... 

La funzione Cast è un wrapper per la funzione Convert . Accoppiare quello con SQL essendo un linguaggio interpretato e il risultato è che anche se le due funzioni producono gli stessi risultati, c’è un po ‘più dietro le quinte nella funzione Cast . L’uso della funzione Convert è un piccolo risparmio, ma piccoli risparmi si moltiplicano.

Trovo che la funzione STR sia il mezzo più pulito per raggiungere questo objective.

 SELECT STR(ceiling(123.415432875), 6, 2)