5

GORM是否有十进制数据类型来存储货币值(-> Decimal(8,2))?

我在https://github.com/jinzhu/gorm#define-models-structs上找不到它

4

4 回答 4

16

迈克尔的回答有效。但是如果你想在 golang 中使用十进制类型,你可以像这样使用shopspring/decimal

type TableName struct {
  Amount    decimal.Decimal `json:"amount" sql:"type:decimal(20,8);"`
}
于 2017-09-05T09:12:09.067 回答
4

这个对我有用:

type Product struct {
      decimal.Decimal `gorm:"type:decimal(7,6);"`
}

我也在尝试建议,但在使用 gorm 时,sql:列最终会成为sqlite3 中的字段。textAutoMigrate()

于 2020-11-02T20:53:29.273 回答
4

如果您使用AutoMigrate,您可以提供GORM SQL 指令(在您的结构模型中)关于如何构建表。尝试以下操作:

type Product struct {
Id           int
ProductName  string    `sql:"type:varchar(250);"`
Amount       float32   `sql:"type:decimal(10,2);"` 
}
于 2016-02-15T04:25:22.780 回答
4

我知道这有点老了,但我遇到了这个问题,很难找到答案。如果您将 Gorm 与 liquibase 一起使用,请将 BigDecimal 用于任何浮点数。

于 2017-05-22T14:15:29.500 回答