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

Изберете от таблицата, като знаете само дата без час (ORACLE)

DATE е запазена ключова дума в Oracle, така че използвам име на колона your_date вместо това.

Ако имате индекс на your_date , бих използвал

WHERE your_date >= TO_DATE('2010-08-03', 'YYYY-MM-DD')
  AND your_date <  TO_DATE('2010-08-04', 'YYYY-MM-DD')

или BETWEEN :

WHERE your_date BETWEEN TO_DATE('2010-08-03', 'YYYY-MM-DD')
                    AND TO_DATE('2010-08-03 23:59:59', 'YYYY-MM-DD HH24:MI:SS')

Ако няма индекс или ако няма твърде много записи

WHERE TRUNC(your_date) = TO_DATE('2010-08-03', 'YYYY-MM-DD')

трябва да е достатъчно. TRUNC без параметър премахва часове, минути и секунди от DATE .

Ако производителността наистина има значение, помислете за поставянето на Function Based Index на тази колона:

CREATE INDEX trunc_date_idx ON t1(TRUNC(your_date));


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Получаване на грешка - ORA-01858:беше намерен нецифров знак, където се очакваше число

  2. Използване на „колона с израз на случай“ в клауза where

  3. Изчисляване на средната цена на инвентара в SQL

  4. Как да преминете през разделен списък в Oracle PLSQL

  5. Как да идентифицираме невалидни (повредени) стойности, съхранени в колони DATE на Oracle