Go报错: incorrect datetime value: ‘0000-00-00‘ for column ‘start‘ at row 1

mysql 插入记录时报 incorrect datetime value 的错误,意思是 start 这一列给的值不对。

一开始,我以为是 mysql 该字段的类型设错了。检查后,确定数据表字段类型没设错。

接着我以为是前端值没取到或者没正确传到后端。在前端打印后,确定前端传值没有问题。

既然数据表和前端都没问题,那问题应该就是在后端了。我在后端把前端的值打印出来,发现后端接收到的该字段的值是正确的,但是在进行类型转换时出错,把正确的值解析为了‘0000-00-00’。这是为什么呢?

问题出在类型转换这一步。为什么要转换?因为前端传过来的值是字符串类型,而后端需要的是 time 类型,所以使用了 time 包进行转换。

原因就在于使用  time 包的 parse 进行类型转换时,传进来要转换的值必须与传进去的要解析的模版字符串格式一致。我传进来的模板是 2006-01-02 15:04:05,但是传值只传了 2020-11-19 11:13,少了秒位,所以报错。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值