目前编程网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《Mysql 有时会给出错误,因为日期时间值不正确》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~
问题内容我正在使用 golang 运行 mysql 查询:
查询:update restore_timestamp set last_restored_at=?其中 id=?
, 更新时间, 1
这里的updatedtime是go中的strfmt.datetime格式。 该查询运行良好一段时间,但之后它开始失败并出现以下错误。 有时mysql重试后它会通过,但大多数时候它会失败。 我不知道为什么会发生这种情况。
错误 1292:第 1 行的 db
.restore_timestamp
.last_restored_at
的日期时间值不正确:“2020-10-19t16:25:08.958z”
表格详细信息: mariadb [db]> 显示 restore_timestamp 中的列;
+------------------+-----------+------+-----+---------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-----------+------+-----+---------------------+-------+
| id | enum('1') | NO | PRI | NULL | |
| last_restored_at | timestamp | NO | | current_timestamp() | |
+------------------+-----------+------+-----+---------------------+-------+
一组 2 行(0.001 秒)
我的表格中只有一行,如上所示,我每次都需要更新。
请指出如何解决此查询失败问题。
解决方案
您应该应用 STR_TO_DATE 转换将日期转换为 db 格式
UPDATE RESTORE_TIMESTAMP
SET last_restored_at=STR_TO_DATE(?, '%Y-%m-%dT%H:%i:%s.%fZ')
WHERE id=?;
在SQLize.online上测试
今天关于《Mysql 有时会给出错误,因为日期时间值不正确》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注编程网公众号!