我需要将分钟转换为小时,舍入到2位小数.我还需要在小数点后最多显示2个数字.所以如果我的分钟为650.那么小时应该是10.83
这是我到目前为止所拥有的:
Select round(Minutes/60.0,2) from ....
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,如果我的分钟是630小时,那么我的分钟数是10万.但我只希望它为10.50(在四舍五入后).我该如何实现这一目标?
u07*_*7ch 366
你能不把你的结果投到numeric(x,2)?哪里x <= 38
select
round(630/60.0,2),
cast(round(630/60.0,2) as numeric(36,2))
Run Code Online (Sandbox Code Playgroud)
返回
10.500000 10.50
Run Code Online (Sandbox Code Playgroud)
Mat*_*ten 74
与SQL Server 2012一样,您可以使用内置格式功能:
SELECT FORMAT(Minutes/60.0, 'N2')
Run Code Online (Sandbox Code Playgroud)
(仅供进一步阅读...)
Ram*_*Ram 23
您可以使用
select cast((630/60.0) as decimal(16,2))
Run Code Online (Sandbox Code Playgroud)
小智 12
Declare @number float = 35.44987665;
Select round(@number,2)
Run Code Online (Sandbox Code Playgroud)
将您的数字转换为Numeric或Decimal。
将您的查询替换为以下内容。
\n\nSelect Convert(Numeric(38, 2), Minutes/60.0) from ....\nRun Code Online (Sandbox Code Playgroud)\n\nSelect Convert(Minutes/60.0, Decimal(65, 2)) from ....\nRun Code Online (Sandbox Code Playgroud)\n该Cast函数是该函数的包装器Convert。再加上 SQL 是一种解释性语言,结果是,即使两个函数产生相同的结果,函数的幕后还有更多的事情发生Cast。
使用该Convert功能可以节省少量资金,但小额节省会成倍增加。Numeric 和 Decimal (38, 2) 和 (65, 2) 的参数表示要使用的最大精度级别和小数位数。
小智 5
CAST(QuantityLevel AS NUMERIC(18,2))
Run Code Online (Sandbox Code Playgroud)