使用time.Time数据类型获取时间报错


报错类型:Error 1292: Incorrect datetime value: ‘0000-00-00’ for column ‘created_at’ at row 1

在添加用户到数据库时,使用的字段created_at,类型为time.Time ,无法正确的获取到当前数据点的报错记录,如下图所示:

使用time.Time数据类型获取时间报错

 

 解决方法与解决过程:

因为我这是学习别人的项目,所以拥有完整项目的源码,我克隆了下来,使用git checkout “对应版本的hash”,然后逐一对照源码,来来回回对了几次才发现此次报错的原因竟是粗心造成。这就是不复制代码带来的问题吗?(手动狗头)

言归正传,获取不到正确时间的问题如下图:

使用time.Time数据类型获取时间报错

 

 此时的CreatedAt少了个字母d,我们去测试,模拟用户注册,得到如下:

使用time.Time数据类型获取时间报错

 

 可以看到获取不到正确时间,我们修改正确变量,得到如下:

使用time.Time数据类型获取时间报错

 

 可以看到插入成功。

在上图中,你还可以看见我有的时间虽然都是0,但是还插入成功。网上讲的都是这个任何使都是0的时间插入成功,而没有说为什么会出现都是0的时间。

总结:

很多报错都是变量拼写错误造成的,如上述案例所示。很多时候编译器都会有提示自定义的变量拼写出错,而上述情况为什么没有提示呢?这个问题我目前也没思考明白,猜测可能跟后面的别名有关。等更加熟悉golang时再回来补充吧,先写到这。

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/282064.html

(0)
上一篇 2022年8月24日
下一篇 2022年8月24日

相关推荐

发表回复

登录后才能评论