Я вставил "нулевой" объект time.Time в таблицу со столбцом DATETIME и получил ошибку Incorrect datetime value: '0000-00-00' for column
.
Код ниже не работает:
package main
import (
"database/sql"
"log"
"time"
_ "github.com/go-sql-driver/mysql"
)
func main() {
db, _ := sql.Open("mysql", "root:secret@(127.0.0.1:3306)/test")
_, err := db.Exec("CREATE TABLE IF NOT EXISTS daty (col DATETIME)")
if err != nil {
log.Panicf("Failed create: %s", err)
}
_, err = db.Exec("INSERT INTO daty (col) VALUES (?)", time.Time{})
if err != nil {
log.Panicf("Failed insert: %s", err)
}
}
Замена time.Time{}
на time.Now()
не приведет к сбою кода.
* Версия драйвера (или git SHA): 9181e3a86a19bacd63e68d43ae8b7b36320d8092 (мастер)
* Go-версия: go-версия go1.9 linux/amd64
*Версия сервера: mysql 8.0.3, 5.7.20
* Серверная ОС: Fedora 26
Это спецификация MySQL, и мы ничего не можем сделать.
Вы должны использовать только допустимую дату и время с MySQL.
Это спецификация MySQL, и мы ничего не можем сделать.
Вы должны использовать только допустимую дату и время с MySQL.
Привет спасибо!
Вместо этого будет работать TIMESTAMP?
Это не форум пользователей MySQL...
Я много знаю о протоколе MySQL, но мало что знаю о поведении MySQL.
Связанная проблема: https://github.com/go-sql-driver/mysql/pull/346