MySql/MariaDB在保存数据时截断整数的一部分,并在末尾添加零



我有一个表,其中包含一列tos_id,该列的数据类型为bigint(20(当从我的PHP/MySql应用程序中保存如下示例时,我看到以下数据:

tos_id在HTTP网络选项卡中:9112884569788786

MySql表列中实际插入的tos_id值:9112884569788700

另一个示例:

网络选项卡中的tos_id:6875884568568743

在MySql表列中插入tos_id:6875884568568000

我研究了许多论坛和帖子,这些论坛和帖子说,为了保存一个大整数,比如长度为25或30位的整数,bigint(20(是最可取的。我很困惑,如果我做错了什么,或者我应该以其他方式使用它,任何帮助都将不胜感激。提前谢谢。

我在保存时看到了这个问题,试图在我们的网络应用程序中为分析节省实时的网站数据。

您的"无数的诽谤和帖子&;是错误的。如果要在不截断数据的情况下存储30位数字,则需要使用decimal(30,0)

bigint(20)指定bigint类型,显示宽度为20。显示宽度对数据没有影响,在MySQL的最新版本中不赞成指定它。bigint,无论您指定什么显示宽度,都可以存储数字9223372036854775808到9223372036864775807,因此任何18位数字或大多数19位数字。mysql中没有允许在不截断的情况下存储20个或更多数字的整数类型。

小提琴

相关内容

最新更新