He insertado un objeto time.Time "cero" en una tabla con una columna DATETIME y obtengo un error Incorrect datetime value: '0000-00-00' for column
.
El siguiente código falla:
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)
}
}
Reemplazar time.Time{}
con time.Now()
hará que el código no falle.
*Versión del controlador (o git SHA): 9181e3a86a19bacd63e68d43ae8b7b36320d8092 (maestro)
* Ir a la versión: ir a la versión go1.9 linux/amd64
*Versión del servidor: mysql 8.0.3, 5.7.20
*Sistema operativo del servidor: fedora 26
Es la especificación de MySQL y no hay nada que podamos.
Debe usar solo una fecha y hora válida con MySQL.
Es la especificación de MySQL y no hay nada que podamos.
Debe usar solo una fecha y hora válida con MySQL.
¡Hola Gracias!
¿Usar TIMESTAMP en su lugar funcionaría?
Este no es un foro de usuarios de MySQL...
Sé mucho sobre el protocolo MySQL, pero no sé mucho sobre el comportamiento de MySQL.
Problema relacionado: https://github.com/go-sql-driver/mysql/pull/346