我需要把分钟转换成小时,四舍五入到小数点后两位。我还需要只显示小数点后最多两个数字。如果分钟是650,那么小时应该是10.83。
以下是我目前所了解到的:
Select round(Minutes/60.0,2) from ....
但是在这种情况下,如果我的分钟是630小时是10500万。但我只希望它是10.50(四舍五入后)。我该如何做到这一点?
我需要把分钟转换成小时,四舍五入到小数点后两位。我还需要只显示小数点后最多两个数字。如果分钟是650,那么小时应该是10.83。
以下是我目前所了解到的:
Select round(Minutes/60.0,2) from ....
但是在这种情况下,如果我的分钟是630小时是10500万。但我只希望它是10.50(四舍五入后)。我该如何做到这一点?
当前回答
DECLARE @porcentaje FLOAT
SET @porcentaje = (CONVERT(DECIMAL,ABS(8700)) * 100) / CONVERT(DECIMAL,ABS(37020))
SELECT @porcentaje
其他回答
Declare @number float = 35.44987665;
Select round(@number,2)
无论你用什么来命名,都应该是十进制。例如,1548/100给出15.00。
在我们的例子中,如果我们将100替换为100.0,那么我们将得到15.48
select 1548/100
15.00000
select 1548/100.0
15.4800
0
这适用于PostgreSQL和Oracle:
SELECT ename, sal, round(((sal * .15 + comm) /12),2)
FROM emp where job = 'SALESMAN'
作为下面答案的附加内容,当在公式中使用INT或非十进制数据类型时,请记住将值乘以1和您喜欢的小数数。
即- TotalPackages是一个INT,所以是分母TotalContainers,但我希望我的结果有六个小数点后。
因此:
((m.TotalPackages * 1.000000) / m.TotalContainers) AS Packages,
下面的代码片段可能会对您有所帮助:
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