SQL - 四舍五入到小数点后2位

我需要将分钟转换为小时,四舍五入到小数点后2位。我还需要在小数点后显示最多两个数字。因此,如果我的分钟数是650.那么小时数应该是10.83。

以下是我目前掌握的情况。

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

但在这种情况下,如果我的分钟数是,比如说,630 - 小时是10.5000000。但我希望它只是10.50(四舍五入后)。我怎样才能做到这一点呢?

解决办法

你能不能不把你的结果投成numeric(x,2)?其中`x

评论(6)

与SQL Server 2012一样,你可以使用内置的格式函数

SELECT FORMAT(Minutes/60.0, 'N2')

(只是为了进一步阅读...)

评论(4)

下面的片段可能对你有帮助。

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
评论(1)