卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章64334本站已运行4115

将DATE类型的sql字段扫描到go struct字段中

将date类型的sql字段扫描到go struct字段中

php小编鱼仔将DATE类型的sql字段扫描到go struct字段中是一个常见的任务,但却有许多开发者在实现过程中遇到困难。在处理日期类型时,需要将sql中的日期字段与go struct中的相应字段进行映射。这个过程需要考虑日期格式的转换,以及如何处理空值和无效日期等情况。本文将介绍一种简单而有效的方法,帮助开发者顺利完成这一任务。

问题内容

我有一个 google bigquery,它有一个 DATE 类型字段,而不是 DATETIME。

如何在 Go 中以最自然的方式表示这个字段?

我已经尝试过:

type Record {
    Date  string `bigquery:"the_date"`
}

在执行 schema 字段的 iterator.Next(&record) 时出现错误,类型 DATE 的 the_date 无法分配给结构字段 Date of type string

我还尝试过使用 time.Time 类型的日期以及 sql.NullTime 类型,并且对于这些类型也都显示相同的错误。

我似乎无法在网上找到任何关于在没有某种字符串格式的情况下将简单日期值放入基本结构成员中的内容。

解决方法

请尝试civil.Date

type Record {
    Date  civil.Date `bigquery:"the_date"`
}

来自 Go BigQuery 文档

STRING      string
BOOL        bool
INTEGER     int, int8, int16, int32, int64, uint8, uint16, uint32
FLOAT       float32, float64
BYTES       []byte
TIMESTAMP   time.Time
DATE        civil.Date
TIME        civil.Time
DATETIME    civil.DateTime
NUMERIC     *big.Rat
BIGNUMERIC  *big.Rat
卓越飞翔博客
上一篇: 在golang中覆盖gRPC客户端的http主机头
下一篇: 替换字符串中重复的子字符串仅替换其中一个
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏