报错类型:Error 1292: Incorrect datetime value: ‘0000-00-00’ for column ‘created_at’ at row 1
在添加用户到数据库时,使用的字段created_at,类型为time.Time ,无法正确的获取到当前数据点的报错记录,如下图所示:
解决方法与解决过程:
因为我这是学习别人的项目,所以拥有完整项目的源码,我克隆了下来,使用git checkout “对应版本的hash”,然后逐一对照源码,来来回回对了几次才发现此次报错的原因竟是粗心造成。这就是不复制代码带来的问题吗?(手动狗头)
言归正传,获取不到正确时间的问题如下图:
此时的CreatedAt少了个字母d,我们去测试,模拟用户注册,得到如下:
可以看到获取不到正确时间,我们修改正确变量,得到如下:
可以看到插入成功。
在上图中,你还可以看见我有的时间虽然都是0,但是还插入成功。网上讲的都是这个任何使都是0的时间插入成功,而没有说为什么会出现都是0的时间。
总结:
很多报错都是变量拼写错误造成的,如上述案例所示。很多时候编译器都会有提示自定义的变量拼写出错,而上述情况为什么没有提示呢?这个问题我目前也没思考明白,猜测可能跟后面的别名有关。等更加熟悉golang时再回来补充吧,先写到这。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/282064.html