tidb中varchar+0 是什么类型,一直报data truncated

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:5.7.25-TiDB-v3.0.5-1-gc0a14b50e4
  • 【问题描述】:tidb中字段varchar类型但是内容是数字(T),对该字段内容加减数字后(T+0),正常归为那种类型? 修改过字段类型为decimal,interger,float等等都报data truncated concat(T+0,’’) 保存在varchar类型的字段中也不可以

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

data truncated 通常是数据类型的长度不一致导致的,方便提供下表结构信息,以及操作复现步骤吗。

例如有一个表 test,有一个字段t,类型是varchar;test2是结果表有一列r类型是varchar。 test中只有一行是11.5H, select t-0.5 from test 这个结果能查出来是11。 但是这个结果存在test2中的话,无论r列是什么类型都报data truncated。 insert into test2 select t-0.5 from test
刚刚搞定了:我没注意初始t字段有字符H,只看了select结果,把t最后一位截掉再减去0.5就可以存到varchar中了

:+1:

但是话说回来,这个结果到底改是什么类型的image

看上面回帖已经有解决办法了,现在是遇到什么问题了?

按MySQL查询结果集来看,这个结果应该是int或者bigint的数字类型。如果是varchar 应该是顶格的。。不会把数据放在后面

int插入的时候也报错了:disappointed_relieved: 我等会再验证下

看这个文章可能是double?

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。