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

Oracle SQLは、日付形式をDD-Mon-YYからYYYYMMに変換します

    offer_dateとして は数値であり、実際の日付よりも精度が低いため、機能する可能性があります...
    -実際の日付をYYYYMM形式の文字列に変換します
    -その値をINTに変換します
    -結果をoffer_dateと比較します

    SELECT
      *
    FROM
      offers
    WHERE
        offer_date = (SELECT CAST(to_char(create_date, 'YYYYMM') AS INT) FROM customers where id = '12345678')
    AND offer_rate > 0 
    

    また、create_dateですべての操作を行うことによって 1つの値に対してのみ処理を行います。

    さらに、offer_dateを操作しましたか そのフィールドでインデックスを利用することはできないため、SEEKの代わりにSCANを強制します。



    1. 複合(英数字)主キーと自動インクリメント

    2. PostgreSQL:タイムスタンプフィールドに「いいね」が付いたデータを選択します

    3. 複数の行とテーブルの文字列を1つの結果列に連結することは可能ですか?

    4. whereステートメントの日付が変更されると、MySQLEXPLAINの「type」が「range」から「ref」に変更されますか?