2017-03-24 6 views
0

月曜日から翌週(Mon-Sun)の誕生日をすべて取得しようとしています。月曜日から始まる翌週にすべての誕生日を取得する

クエリは、クエリが実行される日に関係なく、次の月 - 日の誕生日を見つけることができるはずです。たとえば、クエリが火曜日に実行された場合、次の月 - 日のすべての誕生日を表示することができます。

私は次のことを試してみたし、動作しているように見えますが、私はそれは常に月曜日に「開始」するために取得するかどうかはわかりません。私はいくつかの古いからこの答えを導き出さ

SELECT * FROM pet 
WHERE 
    birth_date BETWEEN CURRENT_DATE + INTERVAL '7 days' 
    AND CURRENT_DATE + INTERVAL '14 days'; 

注意投稿(2011-2013)私はPostgres 9.5を実行しているので、これを行うためのより新しい、より最適化された方法があるかどうかはわかりません。

ありがとうございます!

+0

この記事最初の答えは、あなたがどのように示してい次の月曜日に取得して、その日曜日に7を加えてhttp://stackoverflow.com/questions/27989762/get-this-weeks-mondays-date-in-postgres – MarkD

答えて

3

これは、あなたがしている次の週の月曜日を与えるだろう。

作品は月曜日だった週の開始です。

select date_trunc('week', current_date +7); 
0

かかわらず、曜日のこれはあなたの次の週の毎日を与える:

select (date_trunc('week', now()+interval'1 week')::timestamp + (t.days::text||' days')::interval)::date 
from generate_series (0,6) t(days) 

クエリでこれを使用する:

select t.birthdays 
from pet, 
generate_series(date_trunc('week', birth_date +interval'1 week') , 
      date_trunc('week', birth_date +interval'2 week'),'1 day') t(birthdays) 
関連する問題