Skip to content
Empieza gratis

¿Cómo calculo una edad en SQL y en pandas?

Calcula la edad en años cumplidos con date_sub en DuckDB y con una fórmula de cumpleaños en pandas, y pruébala con los casos en que restar años falla.

Curso gratis. Tu Maestro, una IA, .

¿Cuántos años tiene Ana?

Marketing quiere los clientes por edad. Ana Ruiz nació el 1 de julio de 1990. El 30 de junio de 2026, nuestro "hoy", ¿cuántos años tiene?

Cualquier persona contesta 35: los 36 los cumple mañana. Una consulta no siempre contesta lo mismo. Predice qué dan cuatro maneras de calcularlo.

Cuatro cálculos de la edad de Ana Ruiz al 30 de junio de 2026. Escribe qué crees que da cada uno y por qué.

Cuatro maneras de calcular una edad

edad.py
import duckdbprint(duckdb.sql("""    SELECT      2026 - 1990 AS resta_de_anios,      date_diff('year', DATE '1990-07-01', DATE '2026-06-30') AS con_date_diff,      (DATE '2026-06-30' - DATE '1990-07-01') // 365 AS dias_entre_365,      date_sub('year', DATE '1990-07-01', DATE '2026-06-30') AS con_date_sub""").fetchall())

Adivinar está bien. Lo que escribas se queda en este navegador y te espera en tu curso.

La edad es una pregunta de cumpleaños

La edad son los años completos desde el nacimiento. Se calcula así: resta los años, y si este año todavía no llega el cumpleaños, quita uno. Eso es justo lo que hace date_sub('year', nacimiento, referencia) en DuckDB: cuenta años completos.

Los atajos fallan en los días antes del cumpleaños, y no son pocos. En los 24 clientes, restar los años da una edad equivocada a 12 de ellos, y dividir los días entre 365 se equivoca con 2. Que el atajo acierte casi siempre es lo que lo vuelve peligroso: una revisión rápida no lo encuentra.

Dos casos para revisar cualquier fórmula de edad:

  • El día del cumpleaños. Carla Méndez nació el 30 de junio de 1985: el 30 de junio de 2026 ya tiene 41.
  • Nacer un 29 de febrero. Beto Garza nació el 29 de febrero de 2000. date_sub('year', DATE '2000-02-29', DATE '2026-02-28') da 26: DuckDB cuenta el 28 de febrero como su cumpleaños en un año que no es bisiesto. En este curso elegimos esa misma convención para las dos herramientas: cumpleaños el 28 de febrero cuando el año de referencia no es bisiesto, y el 29 cuando sí lo es. La comparación simple de mes/día en pandas esperaría al 1 de marzo; por eso la ajustamos abajo. Es una convención de este ejercicio, no una regla legal universal.

¿Te sorprendió que date_diff diera 36? Pregúntale a tu Maestro qué está contando en realidad.

Una edad en pandas

Ejemplo resuelto · 4 pasos

pandas no tiene date_sub. Calcula la edad de cada cliente al 30 de junio de 2026 con las columnas de fecha.

Piensa el siguiente paso por tu cuenta y luego ábrelo para comparar.

Inténtalo

La consulta calcula la edad de cada cliente con date_diff. Cámbiala para que calcule años completos. Una buena respuesta tiene 24 filas, con 35 para Ana Ruiz y 41 para Carla Méndez.

Tu turno

Calcula la edad de cada cliente al 30 de junio de 2026, en años completos, ordenada por cliente_id.

Tablas: clientes (cliente_id, nombre, fecha_nacimiento, fecha_alta, ultima_visita)

clientes · 24 filas

ColumnaTipo
cliente_idBIGINT
nombreVARCHAR
fecha_nacimiento Fecha de nacimiento.DATE
fecha_alta Día en que se inscribió al programa de clientes frecuentes.DATE
ultima_visita Día de su visita más reciente.DATE

Primeras filas

cliente_idnombrefecha_nacimientofecha_altaultima_visita
1Ana Ruiz1990-07-012026-01-312026-02-01
2Beto Garza2000-02-292025-01-282025-06-15
3Carla Méndez1985-06-302024-02-062025-10-21

Inténtalo sin ayuda

Ahora en pandas: calcula la columna edad como en el ejemplo resuelto, sin copiarlo si puedes, e imprime el nombre y la edad de los primeros cinco clientes. Una buena respuesta empieza con Ana Ruiz, 35. Si tus edades salen un año arriba, pégale tu código a tu Maestro.

Tu turno

Calcula la edad de cada cliente al 30 de junio de 2026 en años completos e imprime nombre y edad de los primeros cinco. Usa la convención del curso para nacimientos del 29 de febrero y compruébala también con referencia 2026-02-28.

Datos: clientes-frecuentes, 24 filas
Los datos del ejercicio, "clientes-frecuentes". Tus cambios corren con tu código.
FilaQuitar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Página 1 de 2

Comprueba lo que sabes: Carla Méndez nació el 30 de junio de 1985. ¿Qué edad tiene el 30 de junio de 2026?