Привет.
Поделитесь своими рецептами как ты работаете с датами в базе данных (mysql, postgres) в Go.
Вот мое решение, прокомментируйте.
Я использую Postgres, в базе использую поля типа timestamp
Чтобы их получить в структуру использую тип данных time.Time
Сегодня столкнулся с проблемой
unsupported driver -> Scan pair: -> *time.Time
Оказалось что если в поле timestamp будет NULL то получится такая ошибка
нашел вариант использовать pq.NullTime Вот пример как его использовать:
var nt NullTime
err := db.QueryRow("SELECT time FROM foo WHERE id=?", id).Scan(&nt)
...
if nt.Valid {
// use nt.Time
} else {
// NULL value
}
Подскажите, может есть варианты попроще для работы с датами? Например/ вычитал что можно сделать поле int и хранить время в Unix Timestamp
UPD: вот например что написали в
https://github.com/coopernurse/gorpTo avoid any potential issues with timezone/DST, consider using an integer field for time data and storing UNIX time.