首页 > 解决方案 > mysql使用强制转换将列var复制到int

问题描述

我错误地将一列设置为 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_NEW”的值超出范围

那我做错了什么?

谢谢 ,

标签: mysqltype-conversionduplicates

解决方案


我假设的数据类型SIM_NEWINTEGER.

由于范围,您会收到错误。整数无法处理 17 位数字。使用DOUBLE或任何其他适合需要的数据类型,而不是INTEGER在创建SIM_NEW列时。

DBFiddle 演示


推荐阅读