2012-04-21 6 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 - 7daysと衝突するかどうかを確認する必要があります。前の記録をどうやって確認するのですか?あなたがintervalを使用するように

+0

可能重複(http://stackoverflow.com/質問/ 10257600は/ postgresqlのチェック-前のレコード要素) –

答えて

1

サウンズ:

startDate - interval '...' 

あなたは宿題をやっているので、私はこれ以上言うことはありません。

+0

私は '使用した場合たstartDate間のチェック - 間隔「7 days''が、それは – SNpn

+0

@SNpnが動作するかどうか、私はよく分からない:なぜあなたはしないでくださいstartDate - interval '7 days'とstartDate'の間にあると思いますか? –

+0

'' 7 days''部分がうまくいくかどうか分からず、また、OPビットの編集内容を読んで、それにどう対処することもできますか? – SNpn

0

日付は整数演算で処理されます。

STARTDATE - 8と同等です(STARTDATE ::タイムスタンプ - '8日' ::間隔):: [前のレコードの要素をチェックするのPostgreSQL]の日付