update kh set kh.客户年龄=2012-substring(khb.身份证,7,4) from kh,khb where kh.客户姓名=khb.客户姓名
执行报: "varchar 值 '5)36' 转换为数据类型为 int 的列时发生语法错误。"
而执行 select 2012-substring(khb.身份证,7,4) from khb 一切正常,谁知道这是什么问题吗
------解决方案--------------------
- SQL code
update kh set kh.客户年龄=2012-casr(substring(khb.身份证,7,4) as int) from kh,khb where kh.客户姓名=khb.客户姓名
------解决方案--------------------
你的身份证里面有非法数据,年份的4列有5)36这样的数据存在,你执行正常的没有赋值操作所以不报错,报错是因为截取的要付给整形变量所以报错。
------解决方案--------------------
- SQL code
update kh set kh.客户年龄=2012-convert(int,substring(khb.身份证,7,4)) from kh,khb where kh.客户姓名=khb.客户姓名
------解决方案--------------------
- SQL code
update kh set kh.客户年龄=2012-cast(substring(khb.身份证,7,4) as int) from kh,khb where kh.客户姓名=khb.客户姓名