亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

struct Time 屬性不會從 Go sqlx 庫加載

struct Time 屬性不會從 Go sqlx 庫加載

Go
HUWWW 2021-12-07 16:46:12
我有一個帶有屬性時間的結構:type Basket struct {    ...    Created_at time.Time `db:"created_at"`}時間保存為:basket.Created_at = time.Now().UTC()如果我使用 Insert sql 語句保存它,它會在 SQLite3 中很好地節省時間,但是當我使用以下命令選擇所需的記錄時:ret_basket := Basket{}err := database.DB.Get(&ret_basket, "SELECT id, ..., created_at FROM baskets WHERE user_id = ?", some_user_id)它返回具有正確加載的其他屬性的記錄,除了ret_basket.Created_at作為0001-01-01 00:00:00 +0000 UTC有什么建議?
查看完整描述

1 回答

?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

Sqlite 沒有官方軟件包,所以我假設您使用的是https://github.com/mattn/go-sqlite3可能您的問題是created_at數據庫中字段聲明錯誤的結果,這應該是DATETIME因為下一個代碼在我的機器上運行良好(我已經刪除了所有錯誤檢查):


package main


import (

    "github.com/jmoiron/sqlx"

    _ "github.com/mattn/go-sqlite3"

    "log"

    "time"

)


type Post struct {

    Id      int64     `db:"post_id"`

    Created time.Time `db:"created"`

}


func main() {

    db, _ := sqlx.Connect("sqlite3", "post_db.db")

    db.MustExec("DROP TABLE IF EXISTS posts; CREATE TABLE posts (post_id INT, created DATETIME);")


    p1 := Post{Id: 1, Created: time.Now().UTC()}

    p2 := Post{}


    tx := db.MustBegin()

    tx.NamedExec("INSERT INTO posts (post_id, created) VALUES (:post_id, :created)", &p1)

    tx.Commit()


    db.Get(&p2, "SELECT post_id, created FROM posts WHERE post_id = $1", p1.Id)

    log.Println(p2.Created.Format("2006-01-02"))

}


查看完整回答
反對 回復 2021-12-07
  • 1 回答
  • 0 關注
  • 228 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號