我需要把分钟转换成小时,四舍五入到小数点后两位。我还需要只显示小数点后最多两个数字。如果分钟是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 @number float = 35.44987665;
Select round(@number,2)
其他回答
你可以使用:
select cast((630/60.0) as decimal(16,2))
SQL Server
以下查询是有用和简单的-
declare @floatExchRate float;
set @floatExchRate=(select convert(decimal(10, 2), 0.2548712))
select @floatExchRate
输出值为0.25。
将您的数字转换为数字或小数。
将您的查询替换为以下内容。
SQL Server
Select Convert(Numeric(38, 2), Minutes/60.0) from ....
MySQL:
Select Convert(Minutes/60.0, Decimal(65, 2)) from ....
Cast函数是Convert函数的包装器。再加上SQL是一种解释型语言,结果是即使这两个函数产生相同的结果,但在Cast函数的幕后有更多的事情要做。
使用转换函数是一个小节省,但小节省乘数。Numeric和Decimal(38,2)和(65,2)的参数表示要使用的最大精度级别和小数位数。
作为下面答案的附加内容,当在公式中使用INT或非十进制数据类型时,请记住将值乘以1和您喜欢的小数数。
即- TotalPackages是一个INT,所以是分母TotalContainers,但我希望我的结果有六个小数点后。
因此:
((m.TotalPackages * 1.000000) / m.TotalContainers) AS Packages,
Declare @number float = 35.44987665;
Select round(@number,2)