sql server语句怎么实现两个字符型相减

如题所述

相减只有数字类型或日期类型可以操作,如果两个字符型字段存储的是数字或者日期格式的内容,可对两个字段进行转换,然后再作相减操作;

如:两个字符型(数字)的字段

ID1        ID2

1            2

2            4

执行语句:

select cast(ID2 as int)-cast(ID1 as int) from tablename;

如:两个字符型(日期)的字段

DATE1                        DATE2

2015-08-01                2015-09-01

2015-07-01                2015-10-01

执行语句:

select cast(DATE2 as datetime)-cast(DATE1 as datetime) from tablename;
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-29
你这是语话问题,char类型肯定不能直接用加减乘除来连接。如果是算两数之间的数据,应该这么写。
算两数之间的天数
select datediff(dd,convert(char(4),getdate(),120),convert(char(4),注册日期,120))

算两数之间的月数
select datediff(mm,convert(char(4),getdate(),120),convert(char(4),注册日期,120))

算两数之间的年数
select datediff(yy,convert(char(4),getdate(),120),convert(char(4),注册日期,120))

或者把char(4)改成 decimal(4,0)
select convert(decimal(4,0),substring((convert(varchar(20),getdate(),120)),1,4))-
convert(decimal(4,0),substring((convert(varchar(20),注册日期,120)),1,4))
希望对你有帮助!
第2个回答  2013-06-29
这不是字符相减,这是时间相减,有个时间函数可以用的,你去百度一下吧
第3个回答  2013-06-28
你不知道有个函数叫year吗~year(getdate())=2013追问

那我有张表里有个日期 我怎么那year(getdate())减去我那个日期呢

追答

year(getdate())-year(字段)

本回答被提问者采纳
相似回答