[Oracle, SQLPlus] nach Datum selektieren?

Hallo, habe folgendes Problem:

Tabelle Adressbuch:

Name Geburtsdatum Adresse

Geburtsdatum ist vom Typ DATE

Inhalt:

INSERT INTO Adressbuch VALUES (‚Jörg‘,‚28 11 1985‘,‚Blumenweg 4‘); usw…

Wie kann ich mit einer Abfragen ausgeben welche Leute zb 1980 geboren wurden?

Würde mich über Hilfe freuen,

mfg Reini

Hallo,

SELECT * FROM adressbuch WHERE geburtsdatum >= ‚01.01.1980‘;
Die Typkonvertierung TO_DATE macht Oracle automatisch.

Du kannst auch die YEAR(geburtsdatum) > 1980 nehmen.

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Danke für die Antwort, aber leider gibt er mir folgenden Fehler aus

where geburtsdatum >= ‚01.01.1980‘
*

ERROR at line 4:
ORA-01843: not a valid month

Hallo,

SELECT * FROM adressbuch WHERE geburtsdatum >=
‚01.01.1980‘;
Die Typkonvertierung TO_DATE macht Oracle automatisch.

Du kannst auch die YEAR(geburtsdatum) > 1980 nehmen.

Gruß

Peter

Hallo, habe folgendes Problem:

Tabelle Adressbuch:

Name Geburtsdatum Adresse

Geburtsdatum ist vom Typ DATE

Inhalt:

INSERT INTO Adressbuch VALUES (‚Jörg‘,‚28 11 1985‘,‚Blumenweg
4‘); usw…

Wie kann ich mit einer Abfragen ausgeben welche Leute zb 1980
geboren wurden?

Würde mich über Hilfe freuen,

mfg Reini

Hallo an dieser Stelle.

Danke für die Antwort, aber leider gibt er mir folgenden
Fehler aus
where geburtsdatum >= ‚01.01.1980‘
*
ERROR at line 4:
ORA-01843: not a valid month

Oracle Version ? Aktuell wäre 10g Rel.2
Aber trotzdem ein Versuch: das Datum wird permutiert -> ‚1980.01.01‘ / ‚19800101‘
Oder statt ’ ’ wird " " verwendet…

HTH
mfg M.L.

Hallo,

es sollte schon ein gültiges Datum sein, also

to\_date('01.01.1980', 'dd.mm.yyyy')

HTH, muzel

Auch Hi!

es sollte schon ein gültiges Datum sein, also

to_date(‚01.01.1980‘, ‚dd.mm.yyyy‘)

Wie wär’s mit

 and to\_number(trunc(geburtsdatum),'YYYY')) \>= 1980

Grüße,
Tomh

PS: Kann sein, das noch ein „to_char“ dazwischen gehört, ich weiß jetzt grad nicht auswendig, ob ein Datum direkt in eine Zahl umgewandelt werden kann *schäm*

Hallo Reini,

INSERT INTO Adressbuch VALUES (‚Jörg‘,‚28 11 1985‘,‚Blumenweg
4‘); usw…

Nur ein kleiner Hinweis: Man sollte den TO_DATE bzw. den TO_CHAR immer explizit machen, da das Datumsformat immer vom Client (per Session) festgelegt wird. Wenn also jemand sein Betriebssystem in der englischen Version aufsetzt, dann hat er per default ein anderes Format als jemand, der es auf deutsch aufsetzt. Alternative: „ALTER SESSION SET NLS_DATE_FORMAT=’…’;“ - musst du dann aber immer am Anfang der Session machen (zumindest wenn du vorhast, irgendwas mit DATEs zu tun - alse immer :wink:)

Gruß,
Martin

danke hat geklappt.