DATE
はOracleで予約されているキーワードなので、列名your_date
を使用しています。 代わりに。
your_date
にインデックスがある場合 、使用します
WHERE your_date >= TO_DATE('2010-08-03', 'YYYY-MM-DD')
AND your_date < TO_DATE('2010-08-04', 'YYYY-MM-DD')
またはBETWEEN
:
WHERE your_date BETWEEN TO_DATE('2010-08-03', 'YYYY-MM-DD')
AND TO_DATE('2010-08-03 23:59:59', 'YYYY-MM-DD HH24:MI:SS')
インデックスがない場合、またはレコードが多すぎない場合
WHERE TRUNC(your_date) = TO_DATE('2010-08-03', 'YYYY-MM-DD')
十分なはずです。 TRUNC
パラメータなしで、DATE
から時間、分、秒を削除します 。
パフォーマンスが本当に重要な場合は、Function Based Index
を配置することを検討してください その列:
CREATE INDEX trunc_date_idx ON t1(TRUNC(your_date));