我是 postgresql (redshift) 的新手,我正在将 CSV 文件从 S3 复制到 RedShift,尝试将 2.35555E7 数字保存到numeric | 18, 0
列中时出错。该数据的正确数据类型是什么?
谢谢
我是 postgresql (redshift) 的新手,我正在将 CSV 文件从 S3 复制到 RedShift,尝试将 2.35555E7 数字保存到numeric | 18, 0
列中时出错。该数据的正确数据类型是什么?
谢谢
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)
根据评论可以正常工作,但我认为您的集合中还有其他一些数据会导致问题。