我需要把分钟转换成小时,四舍五入到小数点后两位。我还需要只显示小数点后最多两个数字。如果分钟是650,那么小时应该是10.83。

以下是我目前所了解到的:

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

但是在这种情况下,如果我的分钟是630小时是10500万。但我只希望它是10.50(四舍五入后)。我该如何做到这一点?


当前回答

无论你用什么来命名,都应该是十进制。例如,1548/100给出15.00。

在我们的例子中,如果我们将100替换为100.0,那么我们将得到15.48

select 1548/100
15.00000

select 1548/100.0
15.4800

0

其他回答

我发现STR函数是完成这一任务的最干净的方法。

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

您可以将结果转换为数值(x,2)。其中x <= 38。

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

返回

10.500000    10.50

这适用于PostgreSQL和Oracle:

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

这招对我很管用:

SELECT FORMAT(Minutes/60.0, '0.00')

作为下面答案的附加内容,当在公式中使用INT或非十进制数据类型时,请记住将值乘以1和您喜欢的小数数。

即- TotalPackages是一个INT,所以是分母TotalContainers,但我希望我的结果有六个小数点后。

因此:

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