MYSQL: 函数 truncate(numeric,int) 不存在

MYSQL: function truncate(numeric,int) does not exist

我想舍入非常长的数字,ROUND() 函数在这里工作得很好,但数字的长度仍然相同。

我用过: ROUND(152.23456789123456789,1)

得到:152.20000000000000000

但想得到:152.2

我读到 TRUNCATE() 函数可以“截断”十进制数,但这对我不起作用。我收到一条错误消息,指出该函数不存在或权限被拒绝。我正在使用 Vertica。 我尝试的功能是: TRUNCATE(152.23456789123456789,1)

我还读到向 round 函数添加第三个参数可能会有所帮助,但这对我也不起作用,同样是因为该函数不存在: ROUND(152.23456789123456789,1,1)

你知道我还能做什么吗?

谢谢!

ROUND() 影响列的 value,但不一定影响 type.

如果要一位小数,则转换为小数:

CAST(152.23456789123456789 as DECIMAL(10, 1))

如果您从浮点类型开始,那么结果将是浮点 - 额外的零可能来自它(无论您查询数据如何)。

Here 是显示类型差异的示例。