Sebagai offer_date
adalah angka, dan akurasinya lebih rendah daripada tanggal asli Anda, ini mungkin berhasil...
- Ubah tanggal asli Anda menjadi string format YYYYMM
- Ubah nilai tersebut menjadi INT
- Bandingkan hasilnya dengan offer_date
Anda
SELECT
*
FROM
offers
WHERE
offer_date = (SELECT CAST(to_char(create_date, 'YYYYMM') AS INT) FROM customers where id = '12345678')
AND offer_rate > 0
Juga, dengan melakukan semua manipulasi pada create_date
Anda hanya melakukan pemrosesan pada satu nilai.
Selain itu, apakah Anda telah memanipulasi offer_date
Anda tidak akan dapat menggunakan indeks apa pun di bidang itu, sehingga memaksa SCAN alih-alih SEEK.