GORM是否具有Decimal数据类型?

时间:2015-03-11 10:21:49

标签: go go-gorm

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

我在https://github.com/jinzhu/gorm#define-models-structs

上找不到它

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:4)

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

type TableName struct {
  Amount    decimal.Decimal `json:"amount" sql:"type:decimal(20,8);"`
}

答案 2 :(得分:2)

如果您使用的是AutoMigrate,则可以GORM SQL instructions (in your struct model)了解如何构建表格。尝试以下内容:

type Product struct {
Id           int
ProductName  string    `sql:"type:varchar(250);"`
Amount       float32   `sql:"type:decimal(10,2);"` 
}

答案 3 :(得分:0)

这个对我有用:

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

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