Sql 我希望我的数据在黑斑羚中最多保留6位小数
我在《黑斑羚》中有一个双字专栏 当我试着把它减少到小数点后几位的时候 我犯了这个错误Sql 我希望我的数据在黑斑羚中最多保留6位小数,sql,database,impala,truncate,Sql,Database,Impala,Truncate,我在《黑斑羚》中有一个双字专栏 当我试着把它减少到小数点后几位的时候 我犯了这个错误 错误:AnalysisException:没有签名为truncate(DOUBLE,TINYINT)的匹配函数。 e、 g选择truncate(cast(双精度为0.4893617021276596),7) 欢迎使用任何变通方法您可以使用round(): 如果实际需要截断,则减去0.0000005: select round(col - 0.0000005, 6) 使用DECIMAL类型,可以比FLOAT或D
错误:AnalysisException:没有签名为truncate(DOUBLE,TINYINT)的匹配函数。
e、 g选择truncate(cast(双精度为0.4893617021276596),7)代码>
欢迎使用任何变通方法您可以使用round()
:
如果实际需要截断,则减去0.0000005:
select round(col - 0.0000005, 6)
使用DECIMAL
类型,可以比FLOAT
或DOUBLE
类型更精确地表示数字
十进制
类型的精度
和比例
允许的最大值均为38
精度
是总位数,与小数点的位置无关
Scale
是小数点后的位数。
要在不损失精度的情况下表示数字8.54,您需要
小数类型,精度至少为3,小数位数至少为2
例如:
请注意,DECIMAL(17,16)
类型表示总共有17位数字,其中16位在小数点之后
DECIMAL(17,16)3.1415926535897932
您可以使用DECIMAL
类型更改表,如下所示:
ALTER TABLE my_TABLE CHANGE field DECIMAL(精度、刻度);
或者按照@Gordon Linoff的建议,您可以使用round()
函数
select round(col - 0.0000005, 6)