Вставка нулевого значения time.Time для Go в столбец MySQL DATETIME с ошибками - PullRequest
0 голосов
/ 08 января 2019

Нулевое значение time.Time, генерируемое Go, выдает ошибку при вставке в столбец MySQL DATETIME.

Ошибка, которую я получаю: Error 1292: Incorrect datetime value: '0000-00-00' for column 'expires_at' at row 1

Однако, когда я увеличиваю это значение time.Time всего на 1 наносекунду или меняю год как минимум на 2, оно вставляется без ошибок.

Означает ли это, что я не могу вставить сгенерированные Go нулевые time.Time значения в столбец MySQL DATETIME?

Я использую package sql Exec для выполнения INSERT. Я передаю значение time.Time в качестве аргумента Exec().

sess.Exec(stmt, valueArgs...)

1 Ответ

0 голосов
/ 08 января 2019

Поскольку допустимый диапазон MySQL DATETIME составляет от «1000-01-01 00:00:00» до «9999-12-31 23:59:59». Весь ноль вне диапазона.

Тип DATETIME используется для значений, которые содержат как дату, так и время. MySQL извлекает и отображает значения DATETIME в формате «ГГГГ-ММ-ДД ЧЧ: ММ: СС». Поддерживается диапазон от 1000-01-01 00:00:00 до 9999-12-31 23:59:59.

Источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...