如何检查在MySQL中降低十进制类型的精度是否安全?

如何检查在MySQL中降低十进制类型的精度是否安全?,mysql,decimal,Mysql,Decimal,我有一个MySQL表,其中列的类型为,例如DECIMAL20,4。我想将此列的精度降低到小数点10,2。是否有一种简单的方法来验证这不会导致任何数据丢失,即所有现有值都在精度范围内?您正在删除尾数位置。新类型将无法存储9999999.99以外的值 因此,很容易验证是否会丢失数据。使用以下方法查看是否有任何值超过该限制: select * from my_table where my_column > 99999999.99 编辑小数位: 对于末尾的2位小数,您可以使用以下方法进行检查:

我有一个MySQL表,其中列的类型为,例如DECIMAL20,4。我想将此列的精度降低到小数点10,2。是否有一种简单的方法来验证这不会导致任何数据丢失,即所有现有值都在精度范围内?

您正在删除尾数位置。新类型将无法存储9999999.99以外的值

因此,很容易验证是否会丢失数据。使用以下方法查看是否有任何值超过该限制:

select * from my_table where my_column > 99999999.99
编辑小数位:

对于末尾的2位小数,您可以使用以下方法进行检查:

select * 
from my_table
where round(my_column * 100) <> my_column * 100
或:


您正在删除尾数位置。新类型将无法存储9999999.99以外的值

因此,很容易验证是否会丢失数据。使用以下方法查看是否有任何值超过该限制:

select * from my_table where my_column > 99999999.99
编辑小数位:

对于末尾的2位小数,您可以使用以下方法进行检查:

select * 
from my_table
where round(my_column * 100) <> my_column * 100
或:


只要在运行该查询和重新定义字段之间不能更改数据,@TheImpler描述的方法是合理的。如果有可能在过程中更改数据,您需要做更多的工作


一种可能的方法:

只要在运行该查询和重新定义字段之间不能更改数据,@TheImpler描述的方法是合理的。如果有可能在过程中更改数据,您需要做更多的工作


一种可能的方法:

小数部分的数字是什么?e、 g.123.4567或从my_表中选择MAXABSmy_列。小数部分的数字如何?e、 g.123.4567或从my_表中选择MAXABSmy_列。您的帖子似乎未完成:您的帖子似乎未完成: