Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle SQL преобразува формата на датата от DD-Mon-YY в YYYYMM

Като offer_date е число и е с по-ниска точност от реалните ви дати, това може да свърши работа...
- Преобразувайте реалната си дата в низ във формат YYYYMM
- Преобразувайте тази стойност в INT
- Сравнете резултата с вашата 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 

Освен това, като извършите всички манипулации върху create_date извършвате обработката само на една стойност.

Освен това дали сте манипулирали offer_date няма да можете да използвате никакъв индекс в това поле и така да принудите SCAN вместо SEEK.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Странен модел на използване на паметта в приложението C# Windows Form

  2. Мащабирането на десетичната стойност доведе до съкращаване на данни чрез ODBC

  3. Проблеми с Oracle Export/Import с Tablespace

  4. Изисква ли се COMMIT след всяко EXECUTE IMMEDIATE?

  5. Oracle NUMBER(p) размер на хранилището?