Как извлечь диапазон временных отметок postgres с помощью Go? - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть календарь базы данных с типом tsrange от postgres. Это позволяет мне иметь несколько назначений и временной диапазон, например:

["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"].

1 Ответ

0 голосов
/ 08 ноября 2018

Вы должны быть в состоянии получить отдельные границы диапазона на уровне sql.

// replace tsrange_col with the name of your tsrange column
rows, err := db.Query("SELECT id, user_id, lower(tsrange_col), upper(tsrange_col) FROM appointments")
utils.CheckErr(err)

var id int
var userID int
var tsrange [2]time.Time

rows.Next()
err = rows.Scan(&id, &userID, &tsrange[0], &tsrange[1])

fmt.Println(tsrange[0]) // from
fmt.Println(tsrange[1]) // to
...