两者之间的日期

时间:2018-02-20 15:49:12

标签: sql database sql-server-2008

表测试:

    ID    code   vac_date
  419199    1   2004-06-24
  419199    2   2001-10-04
  419199    1   2005-02-09
  419199    2   2001-03-23
  419199    2   2001-03-22
  419199    1   2001-03-22
  419199    1   2001-02-27
  419199    1   2001-04-04

我试图在彼此的28天内只包含vac_date

select ID,   code,  vac_date 
from test as a
where  a.vac_date = a.vac_date - 28
and    a.vac_date = a.vac_date + 28

然后决心就是这样。

  419199    2   2001-03-23
  419199    2   2001-03-22
  419199    1   2001-03-22
  419199    1   2001-02-27
  419199    1   2001-04-04

只要日期在28天之内。

1 个答案:

答案 0 :(得分:0)

24天可以朝两个方向前进。日期/时间函数也是特定于数据库的。以下介绍了您可以做的事情:

select t.*
from t
where exists (select 1
              from t t2
              where t2.id = t.id and
                    t2.code = t.code and
                    t2.vac_date >= t.vac_date - interval '24 day' and
                    t2.vac_date <= t.vac_date - interval '24 day'
             );