2

我是 postgresql (redshift) 的新手,我正在将 CSV 文件从 S3 复制到 RedShift,尝试将 2.35555E7 数字保存到numeric | 18, 0列中时出错。该数据的正确数据类型是什么?

谢谢

4

1 回答 1

5

numeric (18,0)表示比例为零,这是一种表示没有小数的方式——它有点像一个较小的 bigint。

http://www.postgresql.org/docs/current/static/datatype-numeric.html

如果您想将其保留为数字,则可以numeric改用 - 没有精度或比例。

如果没有,只需使用 areal或 adouble precision类型,具体取决于您想要保留的有效数字的数量(分别为 6 和 15)。

您的示例数据 (2.35555E7) 表明您正在使用real,所以可能先尝试一下。


注意:select 2.35555E7::numeric(18,0)根据评论可以正常工作,但我认为您的集合中还有其他一些数据会导致问题。

于 2013-06-26T10:41:35.580 回答