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

Daty porównujące Oracle SQL

W Oracle DATE zawsze ma składnik czasu. Twój klient może, ale nie musi, wyświetlać składnik czasu, ale nadal tam jest, gdy próbujesz wykonać porównanie równości. Zawsze chcesz także porównywać daty z datami, a nie ciągami, które używają NLS_DATE_FORMAT bieżącej sesji za wykonywanie niejawnych konwersji, przez co stają się one raczej kruche. Będzie to obejmować albo literały daty ANSI, albo jawne to_date połączenia

Możesz użyć TRUNC funkcja obcinania DATE do północy

SELECT *
  FROM porder
 WHERE trunc(odate) = date '2013-10-04'

Lub możesz przeprowadzić porównanie zakresów (które będzie bardziej wydajne, jeśli możesz skorzystać z indeksu na odate )

SELECT *
  FROM porder
 WHERE odate >= to_date( '04-Oct-2013', 'DD-Mon-YYYY' )
   AND odate <  to_date( '05-Oct-2013', 'DD-Mon-YYYY' );



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Scenariusze i kroki mają problem z ostatnią zmianą

  2. Liczba Oracle do C# dziesiętna

  3. Jak wywołać funkcję Oracle z kursorem referencji jako parametrem wyjściowym z Visual Basic

  4. Czy możesz mieć INNER JOIN bez słowa kluczowego ON?

  5. jak zrobić wyzwalacz, taki jak ograniczenie klucza podstawowego?