日期与今天的日期比较

时间:2019-07-23 16:44:55

标签: sql sql-server case

请随时建议更改标题。

我有一个“聘用日期”列,我想根据以下条件根据员工的工作年限分配特定的等级:

    1-4 years = T1
    5-9 years = T2
    10-15 years = T3
    15+ years = T4

例如,如果雇用日期为2002年7月12日,则该级别应等于T4。

我正在将日期与今天的日期进行比较。

     10/03/2016 = T1
     01/18/2010 = T2
     01/14/2006 = T3
     12/07/2002 = T4

有什么办法可以做到这一点?

我们将非常感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

使用CASE语句获取所需的结果集。

SELECT 
CASE 
    WHEN hire_date < DATEADD(YY,-15,GETDATE()) THEN 'T4'
    WHEN hire_date < DATEADD(YY,-10,GETDATE()) THEN 'T3'
    WHEN hire_date < DATEADD(YY,-5,GETDATE()) THEN 'T2'
    ELSE 'T1'
END
FROM your_table

答案 1 :(得分:1)

您可以在使用struct时使用大小写。即:

select case 
when datediff(year, hireDate, getDate()) >= 15 then 'T4' 
when datediff(year, hireDate, getDate()) >= 10 then 'T3' 
when datediff(year, hireDate, getDate()) >= 5 then 'T2' 
else 'T1' 
end as egroup, id, hiredate 
from employees;