我想根据2个表中的日期差异进行选择。我只对查看日期差为正负一天的值感兴趣。像这样:
select aa.*
from A aa
inner join B bb on aa.ID=bb.ID
where difference(aa.date and bb.date) is +- 1 day
我一天的意思是:
加1天(aa.date和bb.date之间的一天)
aa.date = 02-01-2020 (January 2nd)
bb.date = 03-01-2020 (January 3rd)
减去1天(aa.date和bb.date之间的一天)
aa.date = 02-01-2020 (January 2nd)
bb.date = 01-01-2020 (January 1st)
超过一天(对此值不感兴趣)
aa.date = 02-01-2020 (January 2nd)
bb.date = 04-01-2020 (January 1st)
or
aa.date = 02-01-2020 (January 2nd)
bb.date = 31-12-2019 (December 31st)
希望这很有意义 谢谢您的帮助
答案 0 :(得分:1)
您可以在on
子句中使用日期算术:
select aa.*
from A aa inner join
B bb
on aa.ID = bb.ID and
aa.date >= bb.date - interval '1' day and
aa.date <= bb.date + interval '1' day;
答案 1 :(得分:1)
您可以按以下方式使用abs
函数:
select aa.*
from A aa inner join B bb
on aa.ID = bb.ID
And abs(aa.date - bb.date) <= 1;
干杯!