Som offer_date
er et tal og er af lavere nøjagtighed end dine rigtige datoer, kan dette virke...
- Konverter din rigtige dato til en streng med formatet YYYYMM
- Konverter denne værdi til en INT
- Sammenlign resultatet med din 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
Også ved at udføre al manipulation på create_date
du udfører kun behandlingen på én værdi.
Havde du desuden manipuleret offer_date
du ville ikke være i stand til at bruge noget indeks på det felt, og så tvinge SCAN'er i stedet for SEEK'er.