go之如何在 GORM 中定义日期

JeffreyZhao 阅读:153 2025-06-02 22:19:02 评论:0

看起来 GORM 不支持 DATE 类型,定义日期的唯一方法是通过
时间。时间:

type Header struct { 
 
    Start    time.Time  `json:"period_start"` 
    End      time.Time  `json:"period_end" ` 
    CreatedAt      time.Time `json:"created_at" sql:"DEFAULT:CURRENT_TIMESTAMP"` 
    CreatedBy      string     `json:"created_by"` 
    UpdatedAt      time.Time `json:"updated_at" sql:"DEFAULT:CURRENT_TIMESTAMP"` 
    UpdatedBy      string     `json:"updated_by"` 
} 
 

因此创建的表将具有 TIMESTAMP 作为类型。有没有解决的办法?我试过 sql:"DATE",没用

请您参考如下方法:

使用 time.Time类型定义 Date在戈姆

type Header struct { 
    StartDate    time.Time  `json:"start_date"` 
    ... 
} 
数据库表
CREATE TABLE `header` ( 
  ... 
  `start_date` DATE DEFAULT NULL 
) 
解析日期字符串使用这个
format := "2006-01-02" 
date, _ := time.Parse(format, "2019-07-10") 
为办理 time.Time正确,您需要包含 parseTime作为连接参数。
db, err = Open("mysql", "gorm:gorm@/gorm?charset=utf8&parseTime=True") 
更新:
现在我们可以使用 GORM Customized Data Types Collection日期


标签:日期
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号