dmnBrest
@dmnBrest
Salesforce for money. Python, Go, Ruby for soul.

Как вы работаете с датами в базе данных в Go?

Привет.
Поделитесь своими рецептами как ты работаете с датами в базе данных (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/gorp
To avoid any potential issues with timezone/DST, consider using an integer field for time data and storing UNIX time.
  • Вопрос задан
  • 2480 просмотров
Пригласить эксперта
Ответы на вопрос 1
Lerg
@Lerg
Defold, Corona, Lua, GameDev
Мне нравится хранить в строках, поле типа DATETIME, можно добавить NOT NULL. Но можно и в unixtime.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы