登录
首页 >  数据库 >  MySQL

Out of range value for column 'ref_time' at row 1

来源:SegmentFault

时间:2023-01-26 07:49:42 121浏览 收藏

对于一个数据库开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《Out of range value for column 'ref_time' at row 1》,主要介绍了MySQL、mybatis,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

今天用springMVC+Mybatis开发项目时遇到上述问题。后来解决的时候发现居然是要保存的时间操作出范围了。


1.保存的时间值为:2638601576
因为我数据库中的时间设置为int 11位,上面的值为10位,没有超出数据库指定的范围,并且我还用sql语句执行了,一次,也能成功。但在项目里就报错。让人感觉很奇怪。


2.后来发现,原因是因为,我在java保存这个值的候候用的类型是Long.因为Mybatsi3.0之后,sql.xml里面不需要要写数据库的类型了,它会自动匹配。所以,它会自动它Long型值转换成int.如果我的值为1它会直接保存成功。现在我的值是2638601576看起来没有超出数据库的11位。但它将Long型值转换成int时出错了 ,因为这个值已经大于int类型的最大值2147483647了。所以数据库会报错上述错误。


3.解决办法之一就是将数据库中的int类型改成bigint类型这样就会解决上上述问题。还有一种方法就是因为这个值是我随便写的,暂时时间不会有这么大,所以默认不处理就可以了,因为按int最大值所对应的时间为2038-01-19 11:14:07所以,程序可以可以正常运行到那时。到那时之后,可能会有更高级处理的数据库更高级的语言了,暂时就不用考虑了。

理论要掌握,实操不能落!以上关于《Out of range value for column 'ref_time' at row 1》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

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