我一直在尝试显示所有员工的一年或一年以上的工作经验,但它一直显示所有,我在where子句中使用的是DATEDIFF(YEAR,Hired_Date,GETDATE()) >= 1,但即使少于一年的经验,它也会继续显示。
Employee_Tb
ID Hired_Date
001 2018-05-01
002 2018-03-01
003 2020-05-01
004 2019-12-05
005 2017-03-01发布于 2020-05-18 06:35:15
SELECT *
FROM Employee_Tb
WHERE Hired_Date < CONVERT(DATE,DATEADD(year, -1, GETDATE()))发布于 2020-05-18 06:35:46
DATEDIFF(YEAR, EmpStartDate, GETDATE()) >= 1显示以历年为单位的差异。所以2019-12-31年和2020-01-01年相隔一个历年.
取决于您需要它的精确程度,您可能应该使用month而不是year。
发布于 2020-05-18 06:37:11
在查询中,您使用的是EmpStartDate而不是Hired_Date。
select *
from @T
where DATEDIFF(YEAR, Hired_Date, GETDATE()) >= 1https://stackoverflow.com/questions/61863628
复制相似问题