varchar值转换溢出了int列,超出了最大整数值

michaelno23 2011-06-17 02:34:59
UPDATE t_yqtmls
SET yqtm = yqtm + 1000
WHERE (yqlsh BETWEEN '60000085001' AND '60000091000')

运行提示:varchar值‘33000085001’转换溢出了int列,超出了最大整数值

sql server 2000 企业管理器下
列yqtm的值为 varchar(13)

请问这个语句该怎么修改
...全文
1155 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hq0927 2011-06-17
  • 打赏
  • 举报
回复
UPDATE t_yqtmls
SET yqtm = cast(yqtm as decimal(13,0)) + 1000
WHERE (yqlsh BETWEEN '60000085001' AND '60000091000')
挨踢直男 2011-06-17
  • 打赏
  • 举报
回复
-2147483648到2147483647
这是int类型的范围,不能超出
xuam 2011-06-17
  • 打赏
  • 举报
回复
UPDATE t_yqtmls
SET yqtm = yqtm + 1000
WHERE (cast(yqlsh as varchar(12)) BETWEEN '60000085001' AND '60000091000')


GoAwayZ 2011-06-17
  • 打赏
  • 举报
回复
UPDATE t_yqtmls
SET yqtm = rtrim(cast(yqtm as bigint) + 1000)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧