eine Oracle 10g db ich mit einem Tisch etwas wie dieses:oracle Datumsbereich
create table x(
ID NUMBER(10) primary key,
wedding DATE NOT NULL
);
wie kann ich
select * from x where wedding is in june 2008???
Ich weiß, es ist wahrscheinlich leicht gefallen, aber ich konnte nicht gefunden eine befriedigende Antwort bisher. Hilfe wird sehr geschätzt.
DATE-Typ in ORACLE enthält Datums- und Uhrzeitkomponente. Ausdruck TO_DATE ('2008-JUN-30', 'JJJJ-MON-TT') entspricht '2008-JUN-30 00:00:00'. Wenn Daten Zeitinformationen enthalten, können Probleme mit diesem Ausdruck auftreten. Hochzeit, die am '2008-JUN-30 16:00:00' (4pm) passiert, wird nicht im Ergebnissatz der obigen Frage sein. – zendar
also sollte ich es auf BETWEEN 01 Juni und 01 Juli setzen. – Hoax
Re "Verwendung von TO_DATE ..." - Ich stimme zu, es ist ein bisschen komplizierter, wenn Sie Zeit und Datum zusammen haben. Ihr aktuelles oberes Limit: 'TO_DATE ('2008-JUL-01', 'JJJJ-MON-TT') kann jetzt Hochzeiten vom 2008-JUL-01 bekommen, die keine Zeit haben (ich nehme an, dass es keine Mitternacht gibt) Hochzeiten), so kann diese Abfrage ungenau sein. Sie müssen wahrscheinlich Randfälle ausarbeiten und einen Kommentar zu Zeitanteil und BETWEEN-Operator hinzufügen. – zendar