sql >> データベース >  >> RDS >> Oracle

時間のない日付のみを知ってテーブルから選択する(ORACLE)

    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));
    


    1. MySQLクエリの文字列から数値をどのように抽出しますか?

    2. SQLServerでのIFステートメントのしくみ

    3. SQLServerで月曜日を週の最初の曜日として設定する方法

    4. LinuxでPostgreSQLパスワードを更新する