Integer的使用小计

版权声明:整理不易,转载请注明出处。 https://blog.csdn.net/linmengmeng_1314/article/details/88353088

关于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类型的,然后进行比较或者转为时间格式,也是没问题的。

猜你喜欢

转载自blog.csdn.net/linmengmeng_1314/article/details/88353088
今日推荐