Oracle
 sql >> Database >  >> RDS >> Oracle

Date di confronto Oracle SQL

In Oracle, un DATE ha sempre una componente temporale. Il tuo cliente può visualizzare o meno la componente temporale, ma è ancora presente quando provi a fare un confronto di uguaglianza. Inoltre, desideri sempre confrontare le date con le date anziché con le stringhe che utilizzano NLS_DATE_FORMAT della sessione corrente per fare conversioni implicite rendendole così piuttosto fragili. Ciò comporterà valori letterali di data ANSI o to_date esplicito chiamate

Puoi usare il TRUNC funzione per troncare il DATE a mezzanotte

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

Oppure puoi fare un confronto dell'intervallo (che sarà più efficiente se puoi beneficiare di un indice su odate )

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