Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 我希望我的数据在黑斑羚中最多保留6位小数_Sql_Database_Impala_Truncate - Fatal编程技术网

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)