sql 同一表A中两字段相减 (100分)
sql 同一表A中两字段(使用终期限,使用年限)相减后,得到 使用起期限,将值赋给B中的b字段,其中使用终期限,使用年限为vachar型
实际情况是这样的:
使用终期限(例如 20410519) , 使用年限(50) 现在要得到 使用起期限的值
我试着写了一下:
select convert(int,(LEFT(使用终期限,4))-convert(int,使用起期限) as b from A where (A.ID0 = B.IDO)
但是执行报错,请各位高手指点,急用!!
谢谢了,分全都给了!
------解决方案--------------------你的語句這麼改
select convert(int,LEFT(使用终期限,4)) - convert(int,使用起期限) as 使用年限 from A inner join B On A.ID0 = B.IDO
------解决方案-------------------- 赋值给B需要update B 吧,
update B set X =TabB.b from B jion (
select convert(int,(LEFT(使用终期限,4))-convert(int,使用起期限)) as b from A
) TabB on Tabb.ido = a.ido
------解决方案--------------------如果需要将使用起期限转换为与使用终起期限一样的格式,使用convert转换一下:
declare @EndDate varchar(10),@years varchar(10)
set @EndDate = '20410519 '
set @years = '50 '
select convert(varchar,dateadd(year,-cast(@years as int),cast(@EndDate as datetime)),112)
/*结果
19910519
*/
select CONVERT(varchar,dateadd(year,-cast(使用终期限 as int),cast(使用年限 as datetime)),112)
from YwblDBCHKUPDOCTBL