表测试:
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天之内。
答案 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'
);