select emp#
from emp
where dateadd(YY,1,[Completed Date]) in (getdate() - 30,getdate())
我正在检查完成日期是否为一年,并且应该是下一个开始日期的30天。
例如:培训于2012年3月22日完成
需要在2013年3月22日重拍
我需要证明他将在接下来的30天内批量生产。
答案 0 :(得分:1)
如果你想看到每个人接下来的培训(上次培训+ 1年)都在接下来的30天内,或者过去,请尝试这样:
select *, dateadd(YY, 1, [Completed Date]) nextTraining
from emp
where dateadd(YY, 1, [Completed Date]) < getdate()+30
答案 1 :(得分:0)
您不能像上面尝试的那样使用IN
。相反,您可以使用BETWEEN
或我的首选,大于和小于:
select emp#
from emp
where dateadd(YY,1,[Completed Date]) >= getdate()-30
and dateadd(YY,1,[Completed Date]) <= getdate()
不确定您是否需要AND
条款中的WHERE
条件,但如果您这样做,它就在那里。我还建议使用“年”代替“YY”,但它们都可以使用。