猿问

将 Go 的零时间。时间值插入 MySQL DATETIME 列错误

time.Time生成的零值Go在插入 MySQLDATETIME列时会抛出错误。

我得到的错误:Error 1292: Incorrect datetime value: '0000-00-00' for column 'expires_at' at row 1

但是,当我将该time.Time值仅增加 1 纳秒或将年份更改为至少 2 时,它会被毫无错误地插入。

这是否意味着我不能将 Go 生成的零time.Time值插入到 MySQLDATETIME列中?

我正在使用package sqlsExec来执行INSERT. 我将time.Time值作为参数传递给Exec().

sess.Exec(stmt, valueArgs...)


宝慕林4294392
浏览 180回答 1
1回答

白板的微信

因为 MySQL DATETIME 有效范围是 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'。全零超出范围。DATETIME 类型用于包含日期和时间部分的值。MySQL 以“YYYY-MM-DD HH:MM:SS”格式检索和显示 DATETIME 值。支持的范围是“1000-01-01 00:00:00”到“9999-12-31 23:59:59”。
随时随地看视频慕课网APP

相关分类

Go
我要回答