Oracle auf Date-Feld 30 Jahre addieren

Hallöchen,
ich habe in einer Oracle-Datenbank eine Reihe von Geburtstagen.
Nun möchte ich wissen, wann der 30.Geburtstag von den Leuten ist.
Das Ergebnis soll „Date-tauglich“ sein.

zB. Jemand ist am 27.08.1976 geboren.
nun bräuchte ich als Ergebniss 27.08.2006 00:00:00

Oracle denkt ja bei Datumsgeschichten in Tagen. Also dachte ich, ich addiere auf den Geburtstag 30 * 365.
Aber was passiert, wenn ich ein Schlatjahr habe?

Kann mir jemand helfen?

Gruß
Sina

Hallo,

habe zwar gerade keine Datenbank hier, aber wie wär’s mit:

select to\_date(to\_char(geburtstag, 'dd.mm.')||to\_char(to\_number(to\_char(geburtstag, 'YYYY'))+30), 'dd.mm.yyyy') from geburtstage;

Annahme: Tabelle Geburtstage mit Spalte Geburtstag(Date)

Gruß, muzel

Hi,

es gibt unter Oracle eine Funktion die das kann:

add_months( date1, n )

select add_months( geburtstag, 30*12 ) from …;

da jedes Jahr 12 Monate hat, geht es mit dieser Funktion etwas besser.

Gruß Patrick

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

1 Like

Hallo Patrick,
super, passt

Vielen Dank