「2017-07-05」などの日付が選択されているとします。 PostgreSQLを使用して、選択された間のすべての日付のリストを取得する方法20日前?だから、出力以下の期待:selected_dateをして::選択した日付とn日前の日付のリストを取得するにはどうすればよいですか?
2017-07-05
2017-07-04
2017-07-03
...
2017-06-15
言い換えれば、私が手のparamsとしてオフセットと出力の範囲内のすべての日付を必要としています。
「2017-07-05」などの日付が選択されているとします。 PostgreSQLを使用して、選択された間のすべての日付のリストを取得する方法20日前?だから、出力以下の期待:selected_dateをして::選択した日付とn日前の日付のリストを取得するにはどうすればよいですか?
2017-07-05
2017-07-04
2017-07-03
...
2017-06-15
言い換えれば、私が手のparamsとしてオフセットと出力の範囲内のすべての日付を必要としています。
あなたはこのためgenerate_series()
を使用することができます。
select dt::date
from generate_series(date '2017-07-05' - interval '20' day, date '2017-07-05', interval '1' day) as t(dt)
order by dt::date desc;
generate_series()
リターンがtimestamp
ないdate
ありがとう、それは私のために働く! –
最後に、これは私のために動作するため、キャストdt::date
が必要です。 Iディ同時にそれが、少し違う方法なので、多分それは誰かがあまりにも役立ちます
select '2017-07-01'::date - d.date as selected_date
from generate_series(0, 20) as d(date)
order by selected_date desc
あなただけのPostgreSQLでこれを実行する場合、または関与PHPまたは似言語などのプログラミング言語がありますか? – Peter
問題は、クエリで結果セットを使用する必要があることです。だから私は簡単にPythonでこれを生成することができますが、パフォーマンスの観点からはそれは本当に良い解決策ではありません –