Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Wybierz z tabeli, znając tylko datę bez czasu (ORACLE)

DATE jest zarezerwowanym słowem kluczowym w Oracle, więc używam nazwy kolumny your_date zamiast tego.

Jeśli masz indeks na your_date , użyłbym

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

lub 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')

Jeśli nie ma indeksu lub jeśli nie ma zbyt wielu rekordów

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

powinno wystarczyć. TRUNC bez parametru usuwa godziny, minuty i sekundy z DATE .

Jeśli wydajność naprawdę ma znaczenie, rozważ umieszczenie Function Based Index w tej kolumnie:

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. Podziel ciąg według pozycji ogranicznika za pomocą Oracle SQL

  2. Próba wdrożenia aplikacji Oracle-ADF na Tomcat 7

  3. Jak wyświetlić datę w innym formacie w Oracle?

  4. Ręcznie dodaj nową instancję RAC

  5. ORA-12557 TNS:nie można załadować adaptera protokołu