mysql使用cast将列var复制为int

lh80um4z  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(325)

我错误地将一列创建为var(45),当我将表导出到cvs时,我看不到数字。
现在我想在使用此命令时将其设置为整数:

select cast(SIM as signed) 
from sample.table1

我没有得到任何错误-所以我猜它会把它转换成int,对吗?但如何将新数据复制到新列?
我试过这个:

update 
sample.table1
set SIM_NEW=cast(SIM as signed)
where id=id

但它不起作用
错误代码:1264。第1行“sim\u new”列的值超出范围
那我做错什么了?
sim列中的所有数据都是19位数字
sim\u new列是int(20)
谢谢,

fslejnso

fslejnso1#

我假设 SIM_NEWINTEGER .
由于范围的原因,您得到了一个错误。整数不能处理17位数字。使用 DOUBLE 或者任何其他适合需要的数据类型,而不是 INTEGER 创建时 SIM_NEW 列。
dbfiddle演示

相关问题