我需要把分钟转换成小时并保留两位小数,同时只显示小数点后最多两个数字。例如,如果有650分钟,则小时应为10.83。
下面是我的代码:
Select round(Minutes/60.0,2) from ....
但在这种情况下,如果我的分钟数是630,小时数是10.5000000。但我只想将其舍入为10.50(保留两位小数)。我该如何实现?
我需要把分钟转换成小时并保留两位小数,同时只显示小数点后最多两个数字。例如,如果有650分钟,则小时应为10.83。
下面是我的代码:
Select round(Minutes/60.0,2) from ....
但在这种情况下,如果我的分钟数是630,小时数是10.5000000。但我只想将其舍入为10.50(保留两位小数)。我该如何实现?
numeric(x,2)
,其中 x <= 38
。select
round(630/60.0,2),
cast(round(630/60.0,2) as numeric(36,2))
返回
10.500000 10.50
SELECT ROUND(630/60.0, 2);
已经给出了 10.50
。 - Ja͢ckcast(630/60.0 as numeric(36,2))
足够10.50
。 - MrHIDEncast (150.755555 as numeric (16,2));
将返回 150.76
。 - Bino使用 SQL Server 2012,您可以使用内置的format函数:
SELECT FORMAT(Minutes/60.0, 'N2')
1,757.47
。 - 8128你可以使用:
select cast((630/60.0) as decimal(16,2))
在SQL Server中
Declare @number float = 35.44987665;
Select round(@number,2)
CAST(QuantityLevel AS NUMERIC(18,2))
Numeric
或 Decimal
。Select Convert(Numeric(38, 2), Minutes/60.0) from ....
Select Convert(Minutes/60.0, Decimal(65, 2)) from ....
Cast
函数是Convert
函数的一个包装器。由于SQL是一种解释性语言,因此尽管这两个函数产生相同的结果,在Cast
函数中仍然有略微更多的后台工作。Convert
函数可以节约一点点,但这些小的节省会逐渐增加。对于数字和小数的参数(38, 2)和(65, 2)表示要使用的最大精度级别和小数位数。declare @floatExchRate float;
set @floatExchRate=(select convert(decimal(10, 2), 0.2548712))
select @floatExchRate
DECLARE @porcentaje FLOAT
SET @porcentaje = (CONVERT(DECIMAL,ABS(8700)) * 100) / CONVERT(DECIMAL,ABS(37020))
SELECT @porcentaje
试试这个:
SELECT CAST(ROUND([Amount 1]/60,2) AS DECIMAL(10,2)) as TOTAL
这适用于PostgreSQL和Oracle:
SELECT ename, sal, round(((sal * .15 + comm) /12),2)
FROM emp where job = 'SALESMAN'