sql >> Base de Datos >  >> RDS >> Oracle

Oracle SQL convierte el formato de fecha de DD-Mon-YY a YYYYMM

Como offer_date es un número, y es de menor precisión que sus fechas reales, esto puede funcionar...
- Convierta su fecha real a una cadena de formato YYYYMM
- Convierte ese valor a un INT
- Compara el resultado con tu 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 

Además, al hacer toda la manipulación en el create_date solo realiza el procesamiento en un valor.

Además, si hubiera manipulado el offer_date no podrá utilizar ningún índice en ese campo, por lo que forzará SCAN en lugar de SEEK.