test=*# select * from personen ;
name | geburtsdatum
---------+--------------
person1 | 1966-07-01
person2 | 2000-09-10
(2 Zeilen)
Zeit: 0,480 ms
test=*# select name, age((case when (geburtsdatum + extract(year from age(geburtsdatum)) * '1 year'::interval) > current_date then geburtsdatum + extract(year from age(geburtsdatum)) * '1 year'::interval else geburtsdatum + extract(year from age(geburtsdatum)) * '1 year'::interval + '1 year'::interval end), current_date) from personen;
name | age
---------+----------------
person1 | 9 mons 25 days
person2 | 4 days
(2 Zeilen)
Zeit: 0,840 ms
Man könnte die Spalte natürlich noch etwas sinnvoller betiteln…