sql >> Databasteknik >  >> RDS >> Oracle

MINDRE ÄN ELLER LIKAD I Oracle SQL

I Oracle är ett DATUM en tidpunkt. Den har alltid en tidskomponent med en precision till tvåan. todate('08-Jun-2010', 'dd-Mon-yyyy') är i Oracle detsamma som todate('08-Jun-2010 00:00:00', 'dd-Mon-yyyy hh24:mi:ss') . Så om du väljer rader fram till det datumet får du ingen rad den dagen med en tidskomponent som inte är lika med 00:00 .

Om du vill välja alla rader till och med 08-JUN-2010 , jag skulle föreslå att du använder:

< to_date('09-06-2010', 'dd-MM-yyyy')

eller

<= to_date('08-06-2010 23:59:59', 'dd-MM-yyyy hh24:mi:ss')

Obs - Jag korrigerade ditt datumformat:du måste använda MON om du vill använda det förkortade månadsnamnet. Jag skulle föreslå att du använder MM istället så att du inte får felmeddelanden när någon ändrar klientinställningarna (NLS_DATE_LANGUAGE ). Föredrar också användningen av YYYY istället för YY .



  1. Mer robusta kollationer med ICU-stöd i PostgreSQL 10

  2. TSQL:Hur konverterar man lokal tid till UTC? (SQL Server 2008)

  3. Oracle:Varför jag inte kan lita på ROWNUM i en borttagningsklausul

  4. Oracle:Beräkna tidsskillnaden i TT:MM:SS mellan 2 datum