Mysql: Kesalahan: "Nilai tanggal waktu salah: '0000-00-00' untuk kolom ..." di mysql 5.7 dan lebih tinggi

Dibuat pada 22 Des 2017  ·  6Komentar  ·  Sumber: go-sql-driver/mysql

Deskripsi masalah

Saya telah memasukkan objek time.Time "nol" ke tabel dengan kolom DATETIME, dan mendapatkan kesalahan Incorrect datetime value: '0000-00-00' for column .

Contoh kode

Kode di bawah ini gagal:

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)
    }
}

Mengganti time.Time{} dengan time.Now() akan menyebabkan kode tidak gagal.

Konfigurasi

* Versi driver (atau git SHA): 9181e3a86a19bacd63e68d43ae8b7b36320d8092 (master)
*Go version: go version go1.9 linux/amd64
*Versi server: mysql 8.0.3, 5.7.20
*OS Server: fedora 26

Semua 6 komentar

Ini adalah spesifikasi MySQL dan tidak ada yang bisa kami lakukan.
Anda harus menggunakan hanya datetime yang valid dengan MySQL.

Ini adalah spesifikasi MySQL dan tidak ada yang bisa kami lakukan.
Anda harus menggunakan hanya datetime yang valid dengan MySQL.

Hai, terima kasih!
Menggunakan TIMESTAMP sebagai gantinya akan berhasil?

Ini bukan forum pengguna MySQL...

Saya tahu banyak tentang protokol MySQL, tetapi saya tidak tahu banyak tentang perilaku MySQL.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat