【发布时间】:2019-12-19 01:21:46
【问题描述】:
我正在尝试在 hive 中将 bigint 转换为小数 (18,5),但在转换为小数 (18,5) 后我没有得到任何小数值。
让我们采用下面的 bigint 值
99000
999000
499000
350000
344000000
转换为十进制(18,5)后,我期待下面的内容
0.99000
9.99000
4.99000
3.50000
3440.00000
我正在尝试以下查询。
select col_a, cast(col_a as decimal(18,5)) from table;
从上面的查询中,我得到的输出与输入相同
99000
999000
499000
350000
344000000
另外,我尝试将输入除以 10^5 并转换为十进制 (18,5)。
select col_a, cast(col_a/100000 as decimal(18,5)) from table;
以上查询返回小数值,但小数点后没有 5 位。
0.99
9.99
4.99
3.5
344000000
有人可以纠正我在这里遗漏或做错了什么。
【问题讨论】:
-
在最后一个数据集中它应该是 3440 而不是 344000000。
标签: hadoop hive apache-spark-sql