SQL日期计算

时间:2013-03-26 00:39:39

标签: sql

select emp# 
from emp 
where dateadd(YY,1,[Completed Date]) in (getdate() - 30,getdate()) 

我正在检查完成日期是否为一年,并且应该是下一个开始日期的30天。

例如:培训于2012年3月22日完成

需要在2013年3月22日重拍

我需要证明他将在接下来的30天内批量生产。

2 个答案:

答案 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”,但它们都可以使用。