Postgres中的长度和精度问题

时间:2018-07-20 06:10:42

标签: postgresql ddl sqldatatypes

我使用的是postgres sql,我需要12位数字,而十进制后我只需要6位数字,我应该在列中给出什么长度和精度。我给cloumn分配了什么数据类型。

我尝试使用数值作为数据类型,并且给列的长度为12,精度为6。

1 个答案:

答案 0 :(得分:2)

如果您需要在小数点前 12位和之后的6位数字,则需要numeric(18,6)

Quote from the manual

  

数字的小数位数是小数点右边小数部分中小数位数的计数。数字的精度是整数中有效位数的总数,即,数字的两侧的位数小数点

(强调我的)

因此类型定义中的第一个数字(精度)是数字的总数。第二个是小数位数。

如果您指定numeric(12,6),则您的总计包含12位数字和6位小数位数,小数点左边的数字只剩下6位数字。因此,您需要numeric(18,6)