长整数在插入较短的列时会被转换,但不会被截断为什么?公式是什么?

简介: 长整数在插入较短的列时会被转换,但不会被截断为什么?公式是什么?

整数溢出会将数据库中的最大允许数设置为

2147483647
所以你需要bigint 数据类型来存储更大的整数

解决方法
我有一个integer长度为10 的类型的列:

some_number int(10) unsigned NOT NULL
在此列中,我插入了一个太长的数字:

$some_number = 715988985123857;
$query = "INSERT INTO this_table SET some_number = ?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param('i',$some_number);
$stmt->execute();
当我查看表格中的内容时,数字现在是:

2147483647

715988985123857变成了为什么,为什么2147483647?
为什么没有被截断?
这种转换背后的机制是什么,可以使用某些公式来计算结果数吗?

我不是在寻找解决方案。我只想了解具体数字。

声明:地推任务网所有作品(图片、文字)均由用户自行上传分享,仅供网友学习交流。

相关文章
|
11月前
|
运维 Shell Python
【运维知识高级篇】超详细的Shell编程讲解2(变量切片+统计变量长度+字串删除+字串替换+七种方法进行数值运算+整数比较+多整数比较+文件判断+字符串比对+正则比对+配合三剑客的高阶用法)(一)
【运维知识高级篇】超详细的Shell编程讲解2(变量切片+统计变量长度+字串删除+字串替换+七种方法进行数值运算+整数比较+多整数比较+文件判断+字符串比对+正则比对+配合三剑客的高阶用法)
103 0
|
9月前
|
SQL
解决SQLServerException: 转换 varchar 值 '12345678901' 时溢出了整数列的bug
解决SQLServerException: 转换 varchar 值 '12345678901' 时溢出了整数列的bug
212 0
|
11月前
|
存储 算法 JavaScript
设计并实现一个函数, 功能为给定一个存储为随机整数的数组,从中删除所有值为i的整数
设计并实现一个函数, 功能为给定一个存储为随机整数的数组,从中删除所有值为i的整数
|
11月前
|
运维 Shell Perl
【运维知识高级篇】超详细的Shell编程讲解2(变量切片+统计变量长度+字串删除+字串替换+七种方法进行数值运算+整数比较+多整数比较+文件判断+字符串比对+正则比对+配合三剑客的高阶用法)(二)
【运维知识高级篇】超详细的Shell编程讲解2(变量切片+统计变量长度+字串删除+字串替换+七种方法进行数值运算+整数比较+多整数比较+文件判断+字符串比对+正则比对+配合三剑客的高阶用法)(二)
100 0
|
C语言
用函数方法来比较三个数字中的较大值(常规,函数)
用函数方法来比较三个数字中的较大值(常规,函数)
107 0
用函数方法来比较三个数字中的较大值(常规,函数)
|
PHP
PHP数组排序 解决数值型版本号排序错乱
PHP数组排序 解决数值型版本号排序错乱
110 0
成功解决在excel表中通过数学函数转换后,接着去掉公式转为不再随着变化的数值
成功解决在excel表中通过数学函数转换后,接着去掉公式转为不再随着变化的数值
成功解决在excel表中通过数学函数转换后,接着去掉公式转为不再随着变化的数值
Kam
|
Java
枚举去除大量if-else if -else优化记录
java中去除大量if-else
Kam
324 1
|
存储 Python
TLV格式 及 VARINT数值压缩存储方法
TLV格式 及 VARINT数值压缩存储方法
1914 0