我有一个MySQL表,其中列为decimal
类型,例如decimal(20,4)
。 我希望将此列的精度降低到decimal(10,2)
。 是否有一种简单的方法来验证这不会导致任何数据丢失(即所有现有值都在精度范围内)?
您正在删除“尾数”位置。 新类型将不能存储99999999.99
以外的值。
因此,很容易验证是否会丢失数据。 使用以下方法查看是否有任何值超过该限制:
select * from my_table where my_column > 99999999.99
编辑小数位数:
对于末尾的小数点后2位,您可以使用以下方法进行检查:
select *
from my_table
where round(my_column * 100) <> my_column * 100
或者:
select
from my_table
where right(format(my_column, 4), 2) <> '00'