sql >> Database >  >> RDS >> Oracle

Oracle SQL converteert de datumnotatie van DD-Mon-YY naar YYYYMM

Als offer_date is een getal en is minder nauwkeurig dan uw echte datums, dit kan werken...
- Converteer uw echte datum naar een tekenreeks met de indeling YYYYMM
- Zet die waarde om naar een INT
- Vergelijk het resultaat met uw 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 

Ook door alle manipulaties uit te voeren op de create_date u doet de verwerking slechts op één waarde.

Bovendien, had u de offer_date . gemanipuleerd? je zou geen enkele index op dat veld kunnen gebruiken, en dus SCAN's forceren in plaats van SEEK's.



  1. Implementeer MySQL Server + DB met .Net-toepassing

  2. Hoofdletterongevoelig zoeken in Oracle

  3. Postgres bytea-kolom retourneert string (char-array) in plaats van byte-array

  4. Loop resultaten gebaseerd op categorie, maar toon categorie slechts één keer