Table name: sample
--Item--|---datefrom---|--dateto--
Item A |0001-01-01 |2099-01-01
Item B |2017-11-20 |2017-12-31
Item C |2017-11-27 |2017-12-12
上記のデータがあるとします。どのように私は今日の日付を与えられた現在の効果的な項目が得られるような方法でクエリを構築するのですか?PostgreSQLクエリに指定された日付範囲
例。今日は2017-11-29なので、ITEM Cを取得する必要があります。
私はこれを試しましたが、もっと効果的な質問があるのでしょうか?
select * from sample where datefrom>= (select datefrom from sample where datefrom < '2017-11-29' order by datefrom desc limit 1) and dateto <= (select dateto from sample where dateto > '2017-11-29' order by dateto limit 1)
を理由だけで、 'どこサンプルから*を選択していない:
としては、私たちが確かであれば、我々は最も近くであることのためのアイテム間の絆を気にしないでください/以下の単純化されたクエリを使用することができ@a_horseによって指摘しましたdatefrom <= now()とdateto = now()datefrom limit 1'で注文しますか? –
有効な項目です。項目Cが優先されます。 – Bigboss
あなたのクエリdoesntは任意の行btwを返します。 – Bigboss