mysql - 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”的值超出范围
那我做错了什么?
SIM 列中的所有数据都是 19 位数字
SIM_NEW 列是 INT(20)
谢谢 ,
解决方案
我假设的数据类型SIM_NEW
是INTEGER
.
由于范围,您会收到错误。整数无法处理 17 位数字。使用DOUBLE
或任何其他适合需要的数据类型,而不是INTEGER
在创建SIM_NEW
列时。
推荐阅读
- automationanywhere - 如何在 Automation Anywhere 中控制无限循环?
- java - 当我在 IE 上单击 .jnlp 文件时没有任何反应
- celery - 芹菜守护进程是什么意思?
- multithreading - ojAlgo 矩阵库是否支持多线程?
- python - 比较两列并保留 NaN
- spring-boot - 在百里香中显示项目列表总是出错
- parsing - 为什么 $1 匹配整个分组而不是它的令牌?
- c++ - 如何计算代码的并行和串行部分?
- google-maps - 使用 google geocoding api webservices 的批处理(寻找更新)
- android - 当我的应用的视频通话处于活动状态时处理来电铃声(Android)