Saltar al contenido

Guia detallada de como Calcular edad en sql

Para calcular la edad apartir del día de nacimiento de una persona, necesitas conocer su fecha de nacimiento es lo minimo requerido. Ahora la formula seria la fecha actual – la fecha de nacimiento. Si trabajas en Sql Server , Mysql o Postgresql en tu base de datos encontraras columnas de fechas. El mejor ejemplo es la tabla cliente de tu base de datos.

Te recomeiendo leer este articulo formato de formato de fecha . Ademas deberias leer este hasta el final.

Índice

    Formula general para Calcular edad en sql

    La fórmula para calcular la edad en base a la fecha de nacimiento:

    1. identifica la fecha de nacimiento de la persona.
    2. Obtén la fecha actual.
    3. Resta el año de nacimiento del año actual.

    En este articulo te mostramos como calcular la edad usando sentencias SQL y funciones que son las necesarias para este calculo.

    Como calcular edad en sql server ?

    En SQL Server, puedes calcular la edad de una persona a partir de su fecha de nacimiento utilizando la función DATEDIFF.

    ejemplo en sql server:

    SELECT 
    DATEDIFF(YEAR, fecha_nacimiento, GETDATE()) AS 'Edad'
    FROM tabla_personas;

    En este ejemplo, la función DATEDIFF retorna la dferencia en años entre dos fechas (esto gracias al argumento YEAR). La consulta devuelve el resultado de la diferencia de fechas, que es la edad de la persona.

    Como crear un campo calculado de edad ?

    En SQL Server, puedes crear un campo calculado esto nos permitiria tener ya la informacion pre calculada evitando tener que realizar esta operacion por cada consulta. Esto permitiria solo seleccionar la columna con la informacion.

    campo calculado de edad en una tabla existente:

    ALTER TABLE tabla_personas
    ADD edad AS DATEDIFF(YEAR, fecha_nacimiento, GETDATE());

    Explicacion:

    • la instrucción ALTER TABLE para agregar un campo calculado llamado edad a la tabla tabla_personas.
    • La función DATEDIFF se utiliza para calcular la diferencia en años entre la fecha.
    • La instrucción AS se utiliza para indicar el nombre de la columna

    Una vez creada la columna calculada, puedes seleccionarla en consultas como si fuera una columna de datos física:

    SELECT nombre, edad FROM tabla_personas;
    

    En este ejemplo, se seleccionan el nombre y la edad de todas las personas de la tabla tabla_personas. La edad se devuelve como un campo calculado.

    Metodo para calcular edad en MySQL?

    En MySQL, puedes calcular la edad de una persona a partir de su fecha de nacimiento utilizando la TIMESTAMPDIFF para obtener la diferencia entre la fechas.

    sintaxis

    SELECT TIMESTAMPDIFF(YEAR, fecha_nacimiento, CURDATE()) AS 'Edad'
    FROM tabla_personas;

    Explicacion

    • la función TIMESTAMPDIFF se utiliza para calcular la diferencia en años entre la fecha
    • La consulta devuelve el resultado de la diferencia de fechas, que es la edad de la persona.

    Campo calculado de edad mysql

    Crear un campo calculado a partir de su fecha de nacimiento. Para hacerlo, puedes utilizar la función TIMESTAMPDIFF.

    Aquí te muestro cómo crear un campo calculado de edad en una tabla existente:

    ALTER TABLE tabla_personas
    ADD edad INT 
    AS TIMESTAMPDIFF(YEAR, fecha_nacimiento, 
                                  CURDATE());

    En este ejemplo,

    Una vez creada la columna calculada, puedes seleccionarla en consultas como si fuera una columna de datos física:

    SELECT nombre, edad FROM tabla_personas;

    En este ejemplo, se seleccionan el nombre y la edad.

    Es importante que para esta formula deberias validar cual es el formato de fecha que deseas utilizar.

    Como calcular en PostgreSQL?

    En PostgreSQL, puedes calcular la edad de una persona a partir de su fecha de nacimiento utilizando la función AGE. que toma como argumento la fecha de nacimiento y la fecha actual. Para esto te recomiendo utilizar pgadmin para crear una consulta.

    Aquí te mostramos un ejemplo:

    SELECT AGE(fecha_nacimiento) AS "Edad"
    FROM tabla_personas;

    La consulta devuelve el resultado de la función AGE, que es un intervalo de tiempo que representa la edad de la persona en años, meses y días.

    Campo edad calculado en Postgresql

    Para hacerlo, puedes utilizar la función AGE para obtener la diferencia entre la fecha actual y la fecha de nacimiento en años.

    Aquí te muestro cómo crear un campo calculado de edad en una tabla existente:

    ALTER TABLE tabla_personas
    ADD edad INTEGER GENERATED ALWAYS 
    AS (DATE_PART('year', AGE(fecha_nacimiento))) STORED;

    Explicacion:

    • la instrucción ALTER TABLE para agregar un campo calculado llamado edad a la tabla tabla_personas.
    • La función AGE se utiliza para calcular la diferencia en años entre la fecha
    • La instrucción GENERATED ALWAYS AS se utiliza para indicar que edad es un campo calculado
    • Además, se especifica que el tipo de datos de edad es INTEGER.

    Una vez creada la columna calculada, puedes seleccionarla en consultas como si fuera una columna de datos física:

    SELECT nombre, edad
    FROM tabla_personas;

    En este ejemplo, se seleccionan el nombre y la edad de todas las personas de la tabla.

    Formas para calcular años entre dos fechas Oracle

    En Oracle existe varias formas de calcular la edad la función «MONTHS_BETWEEN» o «EXTRACT» son dos métodos comunes.

    MONTHS_BETWEEN para calcular meses entre dos fechas Oracle

    Para calcular la edad en Oracle, indica la cantidad de meses entre la fecha actual y la fecha de nacimiento, y luego dividir el resultado por 12 para obtener la edad en años.

    ejemplo:

    SELECT TRUNC(
      MONTHS_BETWEEN(SYSDATE,
                      TO_DATE('01-JAN-1990','DD-MON-YYYY'))/12) 
                                AS EDAD 
    FROM DUAL;

    El resultado será la edad en años, que en este caso sería 33 (suponiendo que la fecha actual sea el 13 de abril de 2023).

    Calcular años, meses y días entre dos fechas Oracle

    Para calcular la diferencia en años, meses y días entre dos fechas en Oracle, puedes complementar la funino «MONTHS_BETWEEN» con las funciones «TRUNC» y «MOD«.

    Por ejemplo, si tenemos dos fechas y queremos obtener la diferencia en años, meses y días:

    SELECT TRUNC(MONTHS_BETWEEN(FECHA_FIN, 
                                FECHA_INICIO)/12) AS ANIOS,
           TRUNC(MOD(MONTHS_BETWEEN(FECHA_FIN, 
                                    FECHA_INICIO),12)) AS MESES, 
           TRUNC(MOD(FECHA_FIN - FECHA_INICIO, 1)*365) AS DIAS 
    FROM TU_TABLA;

    Donde «FECHA_FIN» y «FECHA_INICIO» son las fechas de inicio y fin respectivamente.

    El resultado será la cantidad de años, meses y días entre las dos fechas. Por ejemplo, si la diferencia entre las fechas es de 2 años, 5 meses y 10 días, el resultado sería:

    ANIOS MESES DIAS

    Extraer la diferencia en años de dos fechas

    La función «EXTRACT» para obtener el año de la fecha actual y la fecha de nacimiento, y luego restar el año de nacimiento del año actual.

    Por ejemplo:

    SELECT EXTRACT(YEAR FROM SYSDATE) 
    - EXTRACT(YEAR FROM TO_DATE('01-JAN-1990',
                                'DD-MON-YYYY')) AS EDAD
                        FROM DUAL

    Este código también devolvería la edad actual de la persona, que en este caso sería 33.

    Cual seria la formula en excel ?

    Es posible emplear Excel para calcular la edad de una persona mediante diversos métodos, los cuales pueden ser ejecutados utilizando funciones de Fecha y Hora. En la siguiente tabla se presentan algunas de las técnicas más comunes para realizar esta tarea.

    Para utilizar los ejemplos en Excel, se debe seleccionar los datos de la tabla arrastrando el cursor, luego hacer clic con el botón derecho sobre la selección y elegir la opción Copiar. A continuación, se debe abrir una nueva hoja de cálculo, ubicar el cursor en la celda A1 y seleccionar las opciones de pegado, eligiendo Mantener formato de origen.

    Dos fomulas para determinar la edad

    Aquí te presento dos fórmulas de Excel para calcular la edad de una persona:

    1. Usando la función DATEDIF:La función DATEDIF calcula la diferencia entre dos fechas en días, meses o años. Para determinar la edad de una persona en años, se puede utilizar la siguiente fórmula:
      • =DATEDIF(FechaDeNacimiento;HOY(); «y»)

    En donde «FechaDeNacimiento» es la fecha de nacimiento de la persona y «HOY()» es la función que devuelve la fecha actual del sistema. El argumento «y» indica que queremos obtener la diferencia en años.

    1. Restando fechas:Otra manera de calcular la edad de una persona es restando la fecha actual del sistema (obtenida con la función HOY()) de la fecha de nacimiento de la persona. La fórmula quedaría así:
      • =(HOY()-FechaDeNacimiento)/365.25

    Esta fórmula divide la diferencia entre ambas fechas entre 365.25 días (que es la duración promedio de un año en días) para obtener la edad en años con decimales.

    Recuerda que en ambas fórmulas debes sustituir «FechaDeNacimiento» por la celda que contiene la fecha de nacimiento de la persona que deseas calcular la edad.

    Recomendacion para Calcular edad en sql

    Es importante tener en cuenta que este cálculo no es exacto, ya que no toma en cuenta los días y horas transcurridos desde el último cumpleaños de la persona.

    Conclusion

    Calcular edad en sql requieres introducir la fecha de nacimiento y comparamos con la fecha actual. ademas entendimos e uso de la funciones Datediff de sql, Age de postgresql y TIMESTAMPDIFF de mysql.

    Esta funciones tambien pueden utilizarce en el proceso de despreciacion de un activo fijo o en los procesos de almacen.

    Hasta la proxima ;D !

    Gracias 😀 !!