Oracle SQL-Abfrage Date-Feld

Hallo,
ich habe eine Tabelle „Transport“ in der ich unter anderem ein Date-Feld „LastMove“ habe. Wie kann ich in diesem Feld nur nach Monat suchen, oder nach Jahr(z.B. alle Datensätze im Monat April, oder alle Datensätze aus dem 5.(Tag) 2004(Monat ist egal))? Den Vergleich des Datums mit LIKE hat man mir abgeraten. Ich weiss sonst nicht wie ich suchen soll. Hat da jemand eine Lösung?
Danke im Vorraus
Christoph

Hallo Christoph!

Wie kann ich in diesem Feld nur
nach Monat suchen, oder nach Jahr(z.B. alle Datensätze im
Monat April, oder alle Datensätze aus dem 5.(Tag) 2004(Monat
ist egal))?

Zusammenhängende Datumsbereiche (also z.B. April 2004) am Besten so:
SELECT * FROM my_tab WHERE date_field >= TO_DATE(‚01.04.2004 00:00‘, ‚DD.MM.YYYY HH:MI‘) AND date_field function based index schaffen. Wenn du einen FBI verwendest empfiehlt es sich übrigens dringend Views zu verwenden. Infos dazu in der Doku oder gerne auch hier…

Liebe Grüße,
Martin

Hallo Christoph,

alle Datensätze im Monat April

where to_char(last_move,‚MM‘) = ‚04‘

alle Datensätze aus dem 5.(Tag) 2004(Monat ist egal)

where to_char(last_move,‚DD.YYYY‘) = ‚05.2004‘

Grüßle
Bonsai

Hallo Bonsai!

alle Datensätze im Monat April

where to_char(last_move,‚MM‘) = ‚04‘

Das verhindert unnötigerweise die Verwendung eines Indices auf last_move. (siehe meine Antwort an Christoph).

alle Datensätze aus dem 5.(Tag) 2004(Monat ist egal)

where to_char(last_move,‚DD.YYYY‘) = ‚05.2004‘

Der passt natürlich…

Gruß und nix für ungut,
Martin

Danke für so schnelle Antwort!

Christoph