0
点赞
收藏
分享

微信扫一扫

Integer的使用小计


关于Integer的范围,可能这个大家都接触过,Java基础面试题中,经常出现的一个问题就是int的范围。但是离了面试题之后,我们是否还能注意到这个范围呢?

最近在做项目的时候发现了一颗潜在的雷。数据库设计的时候,在关于有效期的日期的时间存取的过程当中,时间戳关于日期的长度是10位的,后面三位是时间,数据库里设计的字段类型为int,长度为11,这个乍一看,貌似没什么问题。

正如开头所说的那样,int类型也是有范围的,

最小值:Integer.MIN_VALUE= ​​-2147483648​​​ (-2的31次方)
最大值:Integer.MAX_VALUE= ​​​2147483647​​ (2的31次方-1)

最大值转为日期即是:​​2038-01-19 11-14-07​

在日期小于这个时间的时候,数据是没有问题的,一旦超过这个范围,在存入数据库时,就会报错提示超出Integer的范围了。

所以这个时候就需要将字段类型改为varchar去存的话会好一些,或者直接设置格式为datetime。

如果非得存为varchar类型的时间戳,也是可以的,在后台取出来的时候,先转为long类型的,然后进行比较或者转为时间格式,也是没问题的。


举报

相关推荐

正则小计

bootloader小计

小计划

Integer解析与使用

flutter 小计2

错误合集小计

0 条评论