1

2 つの日付の間に日付列エントリを持つレコードを返すために、2 つの日付を取る JPA という名前のクエリがあります。

開始日と終了日の両方に同じ日付を入力すると、その日付のレコードがあるにもかかわらず、行が返されません。

クエリを機能させる方法はありますか、それとも 2 つの日付が同じ場合に別のクエリを実行しますか?

クエリは次のとおりです。

select o from CustomerOrder o 
where o.orderDate between :date_from and :date_to 
order by o.orderDate desc
4

1 に答える 1

4

私はすべてのクエリを次のように実行する傾向があります。

select fld from tbl
where date >= &start_date
  and date <= &end_date;

私はめったに使用しませんbetween- 私が使用する DBMS は、これらのメソッドのどれを使用するかに関係なく、同じパフォーマンスを発揮します。

where ... and私のアドバイスは、代わりに使用することでパフォーマンスの低下がないかどうかを確認するためにいくつかのタイミングを実行し、そうでwhere ... betweenない場合は切り替えることです。

一部の DBMS は実際に「エンドポイント」(最初および/または最後) を除外しますが、これはおそらくあなたが見ているものです。2 句の SQL ステートメントには、そのような問題はありません。

于 2010-01-07T13:03:56.193 に答える