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

Vælg fra tabel ved kun at kende dato uden tid (ORACLE)

DATE er et reserveret søgeord i Oracle, så jeg bruger kolonnenavn your_date i stedet.

Hvis du har et indeks på your_date , ville jeg bruge

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

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

Hvis der ikke er noget indeks, eller hvis der ikke er for mange poster

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

burde være tilstrækkeligt. TRUNC uden parameter fjerner timer, minutter og sekunder fra en DATE .

Hvis ydeevne virkelig betyder noget, kan du overveje at sætte et Function Based Index på den kolonne:

CREATE INDEX trunc_date_idx ON t1(TRUNC(your_date));


  1. MariaDB CEIL() Forklaret

  2. Hvordan overfører man XML fra C# til en lagret procedure i SQL Server 2008?

  3. Tilslutning af Google BigQuery til IRI Voracity Software

  4. Sådan fungerer RIGHT()-funktionen i MySQL