为什么用nodejs操作mysql数据库存储时间戳会一直显示2147483647?
前几天做一个后台管理的项目,发现前端拿到的时间戳值是对的,但是存入数据库之后却一直存储的是2147483647,通过new Date()
解析之后是Mon Jan 26 1970 04:31:23 GMT+0800 (中国标准时间)
,真是百思不得其解,前端用的是element-ui
的dateTimePicker
获取的日期和时间。后来经过多方排查之后,确定以及肯定前端没有问题,nodejs搭建的服务端也没问题,问题就出在了
mysql数据库
。后来我注意到了长度/值
这个属性,最开始我设置字段类型是INT
,给了50的长度(其实始终最长就是11,虽然显示的50),但是后来我想将其修改的更长时发现,始终只能保持在11的长度值(对于数据库并不精通的我只知道我请求数据需要数字类型)。后来到网上一查发现了一直显示2147483647的原因,其实就是长度的问题,2147483647就是INT
的最大储存长度(可能说的有误,对数据库不够专业)。于是我就将字段类型改为了Varchar
,前端请求到数据时将字符串类型的数据转换成了数字类型。最终得以解决,通过这次问题又学到一个知识点,就很棒!
转载自:https://segmentfault.com/a/1190000041387527