2012-04-21 60 views
0

我不確定如何使用postgres函數檢查日期範圍。我想要做的是檢查一個日期是否在一定的範圍內(開始日期前一週有餘量)用於檢查日期範圍的Postgresql函數

所以基本上,我想檢查日期是否在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個。我將如何檢查以前的記錄?

+0

的[PostgreSQL的檢查前一記錄的元件]可能重複(http://stackoverflow.com/問題/ 10257600/postgresql-checking-a-previous-records-element) – 2012-04-21 14:07:53

回答

1

聽起來像是你要使用interval

startDate - interval '...' 

我不會說任何比這更多,因爲你正在做的功課。

+0

我正在使用'如果在startDate - interval'7 days''之間檢查,但我不確定它是否有效 – SNpn 2012-04-21 05:53:33

+0

@SNpn:爲什麼你不想'startDate - 間隔'7天'和startDate'之間的作品? – 2012-04-21 06:02:45

+0

我不確定'7天'部分是否可以工作,您是否也可以閱讀我在OP中的編輯 - 如何解決這個問題。 – SNpn 2012-04-21 07:09:14

0

日期使用整數運算。

STARTDATE - 圖8是相當於(STARTDATE ::時間戳 - '8天::間隔)::日期