You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 05:25:26