MySql/MariaDB 保存数据时截断部分整数并在末尾追加零
MySql/MariaDB truncates a part of integer when saving a data and appends with zeros at the end
我有一个 table,其中包含数据类型为 tos_id 的列=]bigint(20) 从我的 PHP/MySql 应用程序中保存如下示例时,我看到以下数据:
tos_id 在 HTTP 网络选项卡中:9112884569788786
在MySqltable列中实际插入tos_id值:9112884569788700
另一个示例:
tos_id 在“网络”选项卡中:6875884568568743
已在 MySql table 列中插入 tos_id:6875884568568000
我研究了很多论坛和帖子,说要保存一个大整数,比如长度包含 25 或 30 位数字的整数,bigint(20) 是首选。如果我做错了什么或者我应该以其他方式使用它,我会感到困惑,我们将不胜感激任何帮助。提前致谢。
我在尝试保存 save real-time time-on-site 数据以在我们的网络应用程序中进行分析时看到了这个问题。
您的“众多论坛和帖子”是错误的。如果要存储30位而不截断数据,需要使用decimal(30,0)
.
bigint(20)
指定 bigint 类型,显示宽度为 20。显示宽度对数据没有影响,在 MySQL 的最新版本中已弃用。 bigint,无论您指定什么显示宽度,都可以存储数字 -9223372036854775808 到 9223372036854775807,因此任何 18 位数字或大多数 19 位数字。 mysql 中没有整数类型可以不截断地存储 20 个或更多数字。
我有一个 table,其中包含数据类型为 tos_id 的列=]bigint(20) 从我的 PHP/MySql 应用程序中保存如下示例时,我看到以下数据:
tos_id 在 HTTP 网络选项卡中:9112884569788786
在MySqltable列中实际插入tos_id值:9112884569788700
另一个示例:
tos_id 在“网络”选项卡中:6875884568568743
已在 MySql table 列中插入 tos_id:6875884568568000
我研究了很多论坛和帖子,说要保存一个大整数,比如长度包含 25 或 30 位数字的整数,bigint(20) 是首选。如果我做错了什么或者我应该以其他方式使用它,我会感到困惑,我们将不胜感激任何帮助。提前致谢。
我在尝试保存 save real-time time-on-site 数据以在我们的网络应用程序中进行分析时看到了这个问题。
您的“众多论坛和帖子”是错误的。如果要存储30位而不截断数据,需要使用decimal(30,0)
.
bigint(20)
指定 bigint 类型,显示宽度为 20。显示宽度对数据没有影响,在 MySQL 的最新版本中已弃用。 bigint,无论您指定什么显示宽度,都可以存储数字 -9223372036854775808 到 9223372036854775807,因此任何 18 位数字或大多数 19 位数字。 mysql 中没有整数类型可以不截断地存储 20 个或更多数字。