在SQL中获得2到5年的员工

时间:2018-08-06 09:39:50

标签: sql

我有一个任期表,其中有列链接ID,名称,雇员的加入日期。

我试图只聘用从加入日期到今天为止的任期(工作经验)为2至5年的员工。

我使用查询

SELECT ID FROM tenure WHERE DATEADD(year, 2, JoinDate) >= '2018-08-06' AND DATEADD(year, 5, JoinDate) <= '2018-08-06';

我的表格结构是 enter image description here

我如何才能只获得那些从加入日期到今天的工作期限或任期在2至5年之间的员工?

4 个答案:

答案 0 :(得分:1)

您可以使用TimeStampDiff()

SELECT ID 
FROM tenure t
WHERE timestampdiff(YEAR, JoinDate, now()) >= 2 AND 
      timestampdiff(YEAR, JoinDate, now()) <= 5;

答案 1 :(得分:1)

使用TIMESTAMPDIFF函数

  SELECT ID FROM tenure WHERE
  TIMESTAMPDIFF(YEAR, date(joindate), date(now()))>= 2  and
  TIMESTAMPDIFF(YEAR, date(joindate), date(now()))<=5

答案 2 :(得分:1)

对我来说,您的语法建议使用SQL Server。逻辑将是:

where joindate >= dateadd(year, -5, getdate()) and
      joindate < dateadd(year, -2, getdate())

答案 3 :(得分:0)

根据今天的日期将Joindate与预期范围进行比较

select *
from tenure 
where joindate between DATE_ADD(cur_date(), INTERVAL -5 YEAR) 
                   and DATE_ADD(cur_date(), INTERVAL -2 YEAR)