date_enter
を想定 DATE
です フィールド:
Select * From Customer_Rooms CuRo
Where CuRo.Date_Enter >= trunc(sysdate)
And CuRo.Date_Enter < trunc(sysdate) + 1;
trunc()
関数はデフォルトで時間部分を削除するため、trunc(sysdate)
今朝は真夜中です。
特にbetween
に固執したい場合 、そしてあなたはDATE
を持っています TIMESTAMP
ではありません 、次のことができます:
Select * From Customer_Rooms CuRo
Where CuRo.Date_Enter between trunc(sysdate)
And trunc(sysdate) + interval '1' day - interval '1' second;
between
包括的であるため、1秒も休まないと、今夜の真夜中からレコードを取得する可能性があります。したがって、これにより、元のクエリで探していた23:59:59の時間が生成されます。ただし、>=
を使用する および<
とにかく、私の意見では、少し明確で明確です。
とにかく今日より後の日付を持つことができないと確信している場合、上限は実際には何も追加しておらず、次のようにすると同じ結果が得られます:
Select * From Customer_Rooms CuRo
Where CuRo.Date_Enter >= trunc(sysdate);
trunc
を使用したくない またはto_char
date_enter
に しかしコラム;関数を使用すると、その列のインデックスが使用されなくなります。そのため、to_char
を使用してクエリを実行します。 遅すぎた。