Jako offer_date
je číslo a má nižší přesnost než vaše skutečná data, může to fungovat...
- Převeďte své skutečné datum na řetězec ve formátu YYYYMM
- Převeďte tuto hodnotu na INT
- Porovnejte výsledek s vaším 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
Také provedením všech manipulací v create_date
provádíte zpracování pouze na jedné hodnotě.
Navíc, jestli jste zmanipulovali offer_date
v tomto poli byste nemohli použít žádný index, a tak vynutit SCAN místo hledání.