Estoy trabajando en una tabla donde tengo dos columnas llamadas nacimiento y muerte con fechas como cadenas (para que varíe el carácter específico).
Quiero calcular la edad usando esas dos columnas. Si falta alguno de los valores, es decir, si falta el nacimiento o la muerte, entonces debería devolver 'desconocido' (por cierto, en la tabla con la que estoy trabajando, los valores faltantes se dan como Ninguno )
Cuando trato de convertirlos en fecha, me dan un error o me dan una edad incorrecta.
Por ejemplo, digamos que estas son las fechas de nacimiento y muerte respectivamente:
nacimiento: 0133-01-30T00:53:28+00:53
muerte: 0193-07-01T00:53:28+00:53
Utilicé el siguiente comando:
CAST(death as date) - CAST(birth as date)
Pero estas son edades que regresan como 2210 o simplemente alguna edad absurda.
POR CIERTO ESTOY HACIENDO ESTO EN EL CUADERNO JUPYTER UTILIZANDO POSTGRESQL
Puede usar la función de age postgresql para calcular la edad.
Ejemplo:
SELECT coalesce(age('0193-07-01T00:53:28+00:53'::timestamp, '0133-01-30T00:53:28+00:53'::timestamp)::text, 'Unknown'); age ------------------------ 60 years 5 mons 2 days (1 row)Para obtener años:
SELECT coalesce(EXTRACT(years FROM age('0193-07-01T00:53:28+00:53'::timestamp, '0133-01-30T00:53:28+00:53'::timestamp))::text, 'Unknown'); extract --------- 60 (1 row) SELECT coalesce(EXTRACT(years FROM age('0193-07-01T00:53:28+00:53'::timestamp, null))::text, 'Unknown'); coalesce ---------- Unknown (1 row)