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

Oracle SQL sammenligner datoer

I Oracle er en DATE har altid en tidskomponent. Din klient viser måske eller ikke viser tidskomponenten, men den er der stadig, når du forsøger at lave en lighedssammenligning. Du vil også altid sammenligne datoer med datoer i stedet for strenge, der bruger den aktuelle sessions NLS_DATE_FORMAT for at udføre implicitte konverteringer og dermed gøre dem ret skrøbelige. Det vil involvere enten ANSI-dato-literal eller eksplicit to_date opkald

Du kan bruge TRUNC funktion til at afkorte DATE til midnat

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

Eller du kan lave en intervalsammenligning (som vil være mere effektiv, hvis du kan drage fordel af et indeks på 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. Flere skær med PDO

  2. tælle uden gruppe

  3. Mysql:Gem matrix af data i en enkelt kolonne

  4. Omdøbning af kolonnerne i en tabelkolonner i henhold til en mapping defineret i en anden tabel - med MYSQL