sql计数中的年份总数

时间:2017-04-18 10:40:44

标签: sql-server

我有这样的数据

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

2 个答案:

答案 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

您似乎将年份列存储为文本。这不是一个好主意,您应该使用数字类型。实际上,最好将实际日期存储在这些列中,这样可以更容易使用。