Sql 检查最近六个月内的活动日期

Sql 检查最近六个月内的活动日期,sql,Sql,嗨,我有一张在我们公司工作的临时工表。表有开始日期和结束日期。我需要找出过去六个月里所有活跃的临时工 下表 临时开始日期结束日期 1(ENDDATE>=DATEADD(月-6,GETDATE()) 或(结束日期='1900-01-01' 而且STARTDATE似乎不是要求按开始日期筛选,因此将其从查询中排除。我假设您使用“1900-01-01”代替NULL值来指示员工仍处于活动状态 …其中(ENDDATE='1900-01-01'或DATEADD(月-6,GETDATE())和GETDATE()

嗨,我有一张在我们公司工作的临时工表。表有开始日期和结束日期。我需要找出过去六个月里所有活跃的临时工

下表 临时开始日期结束日期 1
(ENDDATE>=DATEADD(月-6,GETDATE())
或(结束日期='1900-01-01'

而且STARTDATE似乎不是要求按开始日期筛选,因此将其从查询中排除。我假设您使用“1900-01-01”代替
NULL
值来指示员工仍处于活动状态

其中(ENDDATE='1900-01-01'或DATEADD(月-6,GETDATE())和GETDATE()之间的ENDDATE)


如果您只需要在过去6个月内雇佣的人员,可以添加
和STARDATE>=DATEADD(MONTH,-6,GETDATE())

用您正在使用的数据库标记您的问题。您有一个非常低的值作为正无穷大的指示器。
'1900-01-01'
NULL
或至少类似于
'9999-12-31'
的值(或任何可能的最高值)有什么问题.?感谢Chris的回答。是否可以只在结束日期上设置条件。如果有人在过去六个月内一直在活动。我有点困惑我是怎么做的。是的,这是第一位:
WHERE(ENDDATE='1900-01-01'或DATEADD(MONTH,-6,GETDATE())和GETDATE()之间的ENDDATE)
--这只是使用结束日期来确定某人是否在过去6个月内被解雇,或者他们的结束日期被设置为1900-01-01(我在这里再次假设这意味着他们仍在工作),因此他们在过去6个月内是活跃的。。