在 SQL 中使用舍入函数

Posted

技术标签:

【中文标题】在 SQL 中使用舍入函数【英文标题】:Using the Rounding function in SQL 【发布时间】:2021-12-31 21:32:35 【问题描述】:
SELECT track_id, name, ROUND(bytes/1000000,6) AS megabytes
  FROM track
 LIMIT 5;

Result
track_id    name                                          megabytes
1           For Those About To Rock (We Salute You)        11
2           ■■■■■ to the Wall                               5
3           Fast As a Shark                                 3
4           Restless and Wild                               4
5           Princess of the Dawn                            6

如何将兆字节显示到小数点后 6 位。第一个应该是 11.170334。 我为圆形命令输入了 6

【问题讨论】:

DBMS 是 mysql,不是吗..? (请标记 DBMS) 试试/1000000.0,你很可能将一个整数除以另一个整数,在许多 DBMS 中它会计算为一个整数。 Why should I tag my DBMS 【参考方案1】:

如果bytes 字段保持精度,则在除以整数时将其转换为整数。使此语句起作用的最简单方法是除以小数,例如:

SELECT track_id, name, ROUND(bytes/1000000.0,6) AS megabytes
FROM track
LIMIT 5;

更好的方法是在进行查询时执行此操作。 即网页、excel、访问等。

【讨论】:

谢谢 Lasse,现在这对我来说很有意义。

以上是关于在 SQL 中使用舍入函数的主要内容,如果未能解决你的问题,请参考以下文章

T-SQL 舍入与 C# 舍入

T-SQL 舍入与 C# 舍入

哪个舍入舍入日期时间在 SQL 中更有效

使用 SQL DATETIME 规则对 DateTime 进行舍入

使用 agg 函数在 pandas 中分组时进行舍入

MATLAB 舍入函数 - 它如何向上或向下舍入 0.5?