登录
首页 >  Golang >  Go问答

Mysql 有时会给出错误,因为日期时间值不正确

来源:stackoverflow

时间:2024-04-01 22:54:36 475浏览 收藏

目前golang学习网上已经有很多关于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 有时会给出错误,因为日期时间值不正确》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>