嗨,我有一张临时表,他们在我们公司工作。表中有开始日期和结束日期。我需要找出过去六个月中活跃的所有临时工。
下表如下
TEMPID STARTDATE ENDDATE
1 (ENDDATE >= DATEADD(MONTH,-6,GETDATE())
OR (ENDDATE = '1900-01-01'
AND STARTDATE <= GETDATE())
2
3
我正在尝试
基本上,我在过去的六个月中只寻找活跃的工作,但是通过这样的条件,它显示了所有以前曾担任过积极进取心的人
答案 0 :(得分:1)
您似乎并没有要求按开始日期进行过滤,因此请不要在查询中进行搜索。我假设您使用的是'1900-01-01'来代替NULL
值来指示员工仍在工作。
... WHERE (ENDDATE='1900-01-01' OR ENDDATE BETWEEN DATEADD(MONTH,-6,GETDATE()) AND GETDATE())
如果您只希望过去6个月内被录用的人员,则可以添加AND STARDATE >= DATEADD(MONTH, -6, GETDATE())