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