用于检查日期范围的 Postgresql 函数
Posted
技术标签:
【中文标题】用于检查日期范围的 Postgresql 函数【英文标题】:Postgresql function for checking date ranges 【发布时间】:2012-04-21 05:30:38 【问题描述】:我不确定如何使用 postgres 函数检查日期范围。我想要做的是检查日期是否在一定范围内(开始日期前一周有余地)
所以基本上,我想检查日期是否在7 days before to current date
之间,如果是,我将返回该行的 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;
我还必须检查上一条记录的结束日期是否与 startDate - 7 天相冲突。如何查看以前的记录?
【问题讨论】:
PostgreSQL checking a previous record's element 的可能重复项 【参考方案1】:听起来你想使用interval:
startDate - interval '...'
既然你在做作业,我就不多说了。
【讨论】:
我使用的是if check between startDate - interval '7 days'
,但我不确定这是否有效
@SNpn:你为什么不认为between startDate - interval '7 days' and startDate
有效?
我不确定'7 days'
部分是否有效,您也可以阅读我在 OP 中的编辑 - 有点卡在如何解决这个问题上。
添加了我的答案。只需在 (startdate - 7) 和 startdate 等之间进行。日期适用于整数数学,其中整数代表天数。【参考方案2】:
日期适用于整数数学。
startdate - 8 等价于 (startdate::timestamp - '8 days'::interval)::date
【讨论】:
以上是关于用于检查日期范围的 Postgresql 函数的主要内容,如果未能解决你的问题,请参考以下文章