标签:库存 style 不能 body 指定表 join ast HERE 时区
参数只能用结构体指针**,因为要根据指针写入该条插入的数据,
所以user可以作为该条数据使用。
save方法在没有主键的时候是新增,有主键的时候是更新,
可以使用 db.NewRecord()判断,该方法只检查 结构体对应数据表 的主键是否为空,不查表。
gorm的增删改查是 链式方法,每次返回*gorm.DB,即可任意拼接。
查询结果为一个数字时要用struct来接收
type Amount struct { Total float64 }
amount := Amount{}
db.Select("SUM(price) AS total").Scan(&amount)
更新设置NULL
struct是指针类型,Update("deleted_at", nil)
否则 Update("name", gorm.Expr("NULL))
Updates(map[string]interface{}{"name": gorm.Expr("NULL")})
类型
gorm: bool, time必须是对应的类型,mysql则可以是0, 1 和字符串。
gorm 类型对不上则会使用对应struct的零值。
时区
创建记录时:
必须要是time类型,会根据时区来确定插入的数据时间。
go时间 | go时区 | 数据库存储时间 | 数据库显示时间 |
---|---|---|---|
2019-12-01 08:00:00 | +8:00 | 2019-12-01 00:00:00 UTC | 2019-12-01 08:00:00 |
2019-12-01 08:00:00 | +0:00 | 2019-12-01 08:00:00 UTC | 2019-12-01 16:00:00 |
查询时:
1.可以用Where("updated_at < ?", "2019-12-01");
2.时区不影响查询,只将时间部分作为本地时间进行查询。
关联表,select, join
标签:库存 style 不能 body 指定表 join ast HERE 时区
原文地址:https://www.cnblogs.com/wayland3/p/11968378.html