首頁 >後端開發 >Golang >將DATE類型的sql欄位掃描到go struct欄位中

將DATE類型的sql欄位掃描到go struct欄位中

王林
王林轉載
2024-02-09 08:18:09776瀏覽

将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刪除