首页 >后端开发 >Golang >将DATE类型的sql字段扫描到go struct字段中

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

王林
王林转载
2024-02-09 08:18:09767浏览

将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 字段的 <code>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 文档 p>

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

以上是将DATE类型的sql字段扫描到go struct字段中的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:stackoverflow.com。如有侵权,请联系admin@php.cn删除