You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SUBSTRING函数参数1为int类型报错,请求排查原因与解决办法

错误原因分析
  • SUBSTRING函数要求第一个参数必须是字符串数据类型(如char、varchar、nvarchar等),但你的ID字段是int类型,直接将整数类型传入SUBSTRING函数会触发参数类型不匹配的错误。
解决方法

临时转换类型(无需修改表结构)

将ID字段临时转换为字符串类型后再使用SUBSTRING,可以用CAST或CONVERT函数实现:

使用CAST的SQL语句

UPDATE DBO.NUMBER
SET NUMBER = 22675442455
WHERE SUBSTRING(CAST(ID AS VARCHAR(20)), 1, 2) NOT IN ('67','68')

使用CONVERT的SQL语句

UPDATE DBO.NUMBER
SET NUMBER = 22675442455
WHERE SUBSTRING(CONVERT(VARCHAR(20), ID), 1, 2) NOT IN ('67','68')

永久修改表结构(更规范的方案)

如果ID字段的业务场景本就需要存储字符串格式的标识,可以直接修改ID字段的数据类型为合适的字符串类型(如varchar(20))。操作前请务必备份数据,确认业务流程不受影响。修改后即可直接使用原逻辑的SQL语句。

内容的提问来源于stack exchange,提问作者Yes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 01:55:31