我有这样的数据
id name fromdate todate
1 abc 1993 2011
2 def 2006 2016
现在我想要总持续时间,即员工从1993年到2011年花费多少年,我想要显示总年度花费
id name fromdate todate total_years
1 abc 1993 2011 18
2 def 2006 2016 10
查询
select * from employee
答案 0 :(得分:0)
在todate和fromdate列之间减去beet:
SELECT
id,
name,
fromdate,
todate,
CASE ISNUMERIC(ISNULL(todate,'')) WHEN 0 THEN 0 ELSE CAST(todate AS INT)-CAST(fromdate AS INT) END as total_years
from employee
答案 1 :(得分:0)
您的输出意味着您需要以下查询:
select id, name, fromdate, todate,
cast(todate as int) - cast(fromdate as int) as total_years
from employee
您似乎将年份列存储为文本。这不是一个好主意,您应该使用数字类型。实际上,最好将实际日期存储在这些列中,这样可以更容易使用。