In Oracle ist ein DATE ein Zeitpunkt. Sie hat immer eine sekundengenaue Zeitkomponente. todate('08-Jun-2010', 'dd-Mon-yyyy')
ist in Oracle dasselbe wie todate('08-Jun-2010 00:00:00', 'dd-Mon-yyyy hh24:mi:ss')
. Wenn Sie also Zeilen bis zu diesem Datum auswählen, erhalten Sie an diesem Tag keine Zeile mit einer Zeitkomponente ungleich 00:00
.
Wenn Sie alle Zeilen bis einschließlich 08-JUN-2010
auswählen möchten , würde ich vorschlagen, Folgendes zu verwenden:
< to_date('09-06-2010', 'dd-MM-yyyy')
oder
<= to_date('08-06-2010 23:59:59', 'dd-MM-yyyy hh24:mi:ss')
Hinweis - Ich habe Ihr Datumsformat korrigiert:Sie müssen MON
verwenden wenn Sie den abgekürzten Monatsnamen verwenden möchten. Ich würde vorschlagen, MM
zu verwenden Stattdessen erhalten Sie keine Fehlermeldung, wenn jemand seine Client-Einstellungen ändert (NLS_DATE_LANGUAGE
). Bevorzugen Sie auch die Verwendung von YYYY
statt YY
.