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

问题描述 投票:2回答:1

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 sqlExec来演奏INSERT。我将time.Time值作为参数传递给Exec()

sess.Exec(stmt, valueArgs...)

mysql datetime go
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.