用于检查日期范围的Postgresql函数

用于检查日期范围的Postgresql函数,postgresql,Postgresql,我不知道如何使用postgres函数检查日期范围。我想做的是检查某个日期是否在某个范围内(在开始日期前一周有一定的余地) 因此,基本上,我想检查一个日期是否介于当前日期之前7天之间,如果是,我将返回该行的id create or replace function eight(_day date) returns text as $$ declare r record; check alias for $1; startDate date; begin for r in

我不知道如何使用postgres函数检查日期范围。我想做的是检查某个日期是否在某个范围内(在开始日期前一周有一定的余地)

因此,基本上,我想检查一个日期是否介于当前日期之前7天之间,如果是,我将返回该行的id

create or replace function eight(_day date) returns text as $$
declare
  r record;
  check alias for $1;
  startDate date;
begin
    for r in
    select * from terms
    order by starting;
  loop
    startDate := r.starting;
    if check between (..need help to create 7 days before startDate) and startDate return r.id;


end;
$$ language plpgsql;

我还必须检查前一条记录的结束日期是否与开始日期(7天)冲突。如何检查上一条记录?

听起来您想使用:


因为你在做作业,所以我就不多说了。

日期与整数数学有关


startdate-8相当于(startdate::timestamp-'8天'::interval)::date

如果在startdate-interval'7天'之间进行检查,我使用的是
,但我不确定这是否正确works@SNpn:您为什么不认为开始日期-间隔“7天”和开始日期之间的
有效?我不确定
“7天”部分是否有效,你也可以阅读我的编辑在操作位卡住了如何解决这个问题。添加了我的答案。只需在(startdate-7)和startdate之间或类似的时间进行操作。日期与整数数学一起使用,其中整数表示天。可能重复
startDate - interval '...'