如何使用 Go 提取 postgres 时间戳范围?

我有一个来自 postgres 的 tsrange 类型的数据库日历。它允许我有多个约会和时间范围,例如:


["2018-11-08 10:00:00","2018-11-08 10:45:00"]

如何将此值存储在 Go 变量中?


我试过


var tsrange []string

当我登录时tsrange[0]它是空的。它的正确类型是什么?


更多代码:


rows, err := db.Query("SELECT * FROM appointments")

utils.CheckErr(err)


var id int

var userID int

var tsrange []string


rows.Next()

err = rows.Scan(&id, &userID, &tsrange)


fmt.Println(tsrange[0])

当我var tsrange []string用var tsrange string日志替换时是["2018-11-08 10:00:00","2018-11-08 10:45:00"].


杨__羊羊
浏览 109回答 1
1回答

皈依舞

您应该能够在 sql 级别检索范围的各个边界。// replace tsrange_col with the name of your tsrange columnrows, err := db.Query("SELECT id, user_id, lower(tsrange_col), upper(tsrange_col) FROM appointments")utils.CheckErr(err)var id intvar userID intvar tsrange [2]time.Timerows.Next()err = rows.Scan(&id, &userID, &tsrange[0], &tsrange[1])fmt.Println(tsrange[0]) // fromfmt.Println(tsrange[1]) // to
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go