MySQL存Java的System.currentTimeMillis()报错问题

2021-07-13 1118点热度 0人点赞 0条评论

新建一个数据库表的字段int类型,Java下准备存System.currentTimeMillis(),记录毫秒数,结果返回错误:

2021-07-12 19:52:19 [WARN]SqlExceptionHelper - SQL Error: 1264, SQLState: 22001
2021-07-12 19:52:19 [ERROR]SqlExceptionHelper - Data truncation: Out of range value for column 'last_event_time' at row 1

经查询,System.currentTimeMillis()这个long类型,需要8个字节,查MySQL关于int长度的文档:

Type Storage (Bytes) Minimum Value Signed Minimum Value Unsigned Maximum Value Signed Maximum Value Unsigned
TINYINT 1 -128 0 127 255
SMALLINT 2 -32768 0 32767 65535
MEDIUMINT 3 -8388608 0 8388607 16777215
INT 4 -2147483648 0 2147483647 4294967295
BIGINT 8 -263 0 263-1 264-1

int是4个字节,bigint是8个字节,所以修改下数据库表字段的类型,改成bigint就可以了:

ALTER TABLE `test` 
MODIFY COLUMN `last_event_time` bigint(20) NOT NULL DEFAULT 0 COMMENT '最后一次上传事件时间 毫秒数';

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论