Golang使用GORM读取PostgreSQL Timestamp值异常的解决方法求助
GORM读取PostgreSQL timestamp字段返回零值的解决方法
你的问题出在GORM字段标签写法错误,导致结构体字段和数据库表的datetime字段未正确映射,所以返回了time.Time的零值。
正确的映射写法
如果数据库表字段名为datetime,结构体字段名为DateTime,需要用column标签指定对应的数据库列名:
// 完整指定列名和类型(type可选,PostgreSQL的timestamp与Go的time.Time默认兼容) DateTime time.Time `gorm:"column:datetime;type:timestamp"`
也可以简化为仅指定列名:
DateTime time.Time `gorm:"column:datetime"`
额外注意事项
- 确认数据库中
datetime字段存储的是非零值,如果字段为NULL,time.Time类型会返回零值。这种场景可以改用指针类型接收,NULL会被映射为nil:DateTime *time.Time `gorm:"column:datetime"`
内容的提问来源于stack exchange,提问作者jmiguel77
相关产品推荐
相关产品推荐

