将Go的零时间。时间值插入MySQL DATETIME列错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将Go的零时间。时间值插入MySQL DATETIME列错误相关的知识,希望对你有一定的参考价值。
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
的Exec
来演奏INSERT
。我将time.Time
值作为参数传递给Exec()
。
sess.Exec(stmt, valueArgs...)
答案
因为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'。
以上是关于将Go的零时间。时间值插入MySQL DATETIME列错误的主要内容,如果未能解决你的问题,请参考以下文章
Go语言中初始化变量中字面量&Type{}newmake的区别