SQL - Rotunjire la 2 zecimale

Am nevoie pentru a converti de la minute la ore, rotunjit la 2 zecimale.De asemenea, am nevoie pentru a afișa numai până la 2 cifre după punctul zecimal. Deci, dacă am de minute ca 650.Apoi ore ar trebui să fie 10.83

Aici's ceea ce am pana acum:

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

Dar, în acest caz, în cazul meu de minute este, să zicem,630 de ore este 10.5000000. Dar vreau ca 10.50 numai(după rotunjire). Cum pot realiza acest lucru?

Comentarii la întrebare (2)
Soluția

Nu ai putea arunca rezultat ca numeric(x,2)? Unde x <= 38

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

Se întoarce

10.500000   10.50
Comentarii (6)

Ca cu SQL Server 2012, puteți utiliza built-in format funcția:

SELECT FORMAT(Minutes/60.0, 'N2')

(doar pentru lecturi suplimentare...)

Comentarii (4)

puteți utiliza

select cast((630/60.0) as  decimal(16,2))
Comentarii (0)
Declare @number float = 35.44987665;
Select round(@number,2) 
Comentarii (2)
CAST(QuantityLevel AS NUMERIC(18,2))
Comentarii (1)
DECLARE @porcentaje FLOAT

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

SELECT @porcentaje
Comentarii (0)

Funcționează atât cu postgresql și Oracle

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

Tot ceea ce ai de utilizare în denumire trebuie să fie în zecimal, de exemplu 1548/100 da 15.00

Dacă vom înlocui 100 cu 100.0 în exemplul nostru vom obține 15.48`

select 1548/100 
15.00000

select 1548/100.0
15.4800

0
Comentarii (0)

Următoarea interogare este util și simplu-

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

Oferă ieșire de 0,25.

Comentarii (0)

Converti numărul tău de a o Numeric " sau " Zecimal.

Înlocuiți interogare cu următoarele.

Sql server

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

MySql:

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

A Aruncat funcția este un înveliș pentru a "Converti" funcția. Cuplu care cu SQL fiind un limbaj interpretat, iar rezultatul este că, deși cele două funcții produce aceleași rezultate, nu este ușor mai întâmplă în spatele scenei în Aruncat funcție. Folosind "Converti" funcția este un mic economisire, dar mici economii multiplica.

Comentarii (0)

Ca un add-on pentru răspunsurile de mai jos, atunci când se utilizează INT sau non-zecimal tipuri de date în formule, amintiți-vă pentru a multiplica valoarea de 1 și de numărul de zecimale preferați.

adică - TotalPackages este un INT și așa numitor TotalContainers, dar vreau ca rezultatul să aibă până la 6 zecimale.

astfel:

((m.TotalPackages * 1.000000) / m.TotalContainers) AS Packages,
Comentarii (0)

încercați acest lucru : SELECT EXPRIMATE(ROUND([Cantitate 1]/60,2) CA ZECIMAL(10,2)) ca TOTAL

Comentarii (0)

Următorul fragment ar putea ajuta:

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
Comentarii (1)

Am găsi STR funcția cea mai curată înseamnă a realiza acest lucru.

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