如何在 postgres 中插入货币数据类型值

Posted

技术标签:

【中文标题】如何在 postgres 中插入货币数据类型值【英文标题】:How to Insert money datatype value in postgres 【发布时间】:2014-06-02 18:54:34 【问题描述】:

您好,我是 postgres 的新手, 在将数据插入货币类型字段时,我收到错误消息。 这里我的示例表是

CREATE TABLE x_table
(
  t_name character varying(40) NOT NULL,
  currency money
)

INSERT INTO x_table(t_name, currency)
VALUES ('TEST', 1000);

并得到错误消息 ERROR: column "currency" is of type money but expression is of type integer SQL state: 42804.

那么任何人都可以说如何解决这个问题.. 提前致谢

【问题讨论】:

一如既往:您的 Postgres 版本?在现代版本中,这很有效。 使用大整数以美分存储货币。不是答案,但可能同样有效。 【参考方案1】:

在现代版本(使用 9.1 和 9.3 测试)中,上述代码示例按原样运行

在旧版本中,没有定义从 integermoney 的隐式转换。Quoting the the release notes for Postgres 9.1:

添加对从int4int8 转换为money 的支持(乔伊·亚当斯)

另外,请务必考虑存储货币信息的替代方法:PostgreSQL: Which Datatype should be used for Currency?

【讨论】:

感谢 Erwin,与 9.1 合作过,如果我们在旧版本中使用,我可以知道在从命令提示符插入时使用这笔钱进行 int 转换...如果我们在旧版本中使用

以上是关于如何在 postgres 中插入货币数据类型值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 postgres 中创建表并插入具有动态值的数据

Postgres - 在较低的 UNION 选择语句中插入 NUMERIC[] 值“0”

如何使用 Node.js 将特定键:Json 的值插入到 postgres 表中

获取 Postgres 中每个值与整体最小值的差异

在 NpgSql 中使用 BeginBinaryImport 插入位数据类型进行批量数据插入

如何使用NodeJ从Postgres返回INSERT命令中的所有数据