将Go的零time.Time值插入MySQL DATETIME列错误

时间:2019-01-08 09:00:02

标签: mysql datetime go

time.Time生成的零Go值在插入MySQL DATETIME列时引发错误。

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

但是,当我将此time.Time值仅增加1纳秒或将年份更改为至少2时,它将被插入而没有任何错误。

这是否意味着我无法将生成的零time.Time值插入MySQL DATETIME列中?

我正在使用package sql的{​​{1}}来执行Exec。我将INSERT值作为参数传递给time.Time

Exec()

1 个答案:

答案 0 :(得分:2)

因为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”。

Source