如何将数字舍入到最接近的10?

时间:2017-03-06 17:01:46

标签: mysql rounding

在MySQL中,我想将数字舍入到最接近的十位。

e.g。 812 - > 810,但也是819 - > 810

使用ROUND函数不起作用。

4 个答案:

答案 0 :(得分:7)

您可以使用TRUNCATE函数,如下所示:

SELECT TRUNCATE(819, -1);
SELECT TRUNCATE(812, -1);

Result:
810

答案 1 :(得分:3)

我将除以10,做一个floor()然后乘以10得到正确的int值。那么在MySQL中就是这样的:

SELECT FLOOR(Myattribute / 10) * 10;

答案 2 :(得分:3)

您仍然可以使用舍入功能,但将小数位指定为负数:

SELECT ROUND(812, -1)

答案 3 :(得分:0)

您可以使用"integer division" operatorDIV

SELECT 812 DIV 10 * 10;

虽然TRUNCATE()对于“舍入”为10、100等是更好的选择,但DIV也可以用于“舍入”为其他值,例如分钟:

SELECT NOW(), FROM_UNIXTIME(UNIX_TIMESTAMP() DIV 60 * 60);

+---------------------+---------------------------------------------+
| NOW()               | FROM_UNIXTIME(UNIX_TIMESTAMP() DIV 60 * 60) |
+---------------------+---------------------------------------------+
| 2020-03-17 13:51:35 | 2020-03-17 13:51:00                         |
+---------------------+---------------------------------------------+