Calcular la diferencia de años entre dos fechas Oracle SQL

Hola a todos, hoy os voy a explicar como podemos calcular la diferencia de años entre dos fechas en Oracle.

Algo habitual en nuestras base de datos es almacenar fechas y es posible que necesitemos calcular una diferencia de años, por ejemplo, la fecha de nacimiento de una persona o la antigüedad de un empleado en una empresa.

Partiendo de esta base de datos:

CREATE TABLE PERSONA (
    NOMBRE VARCHAR2(20) PRIMARY KEY,
    FECHA_NAC DATE 
);

INSERT INTO PERSONA VALUES('FERNANDO', TO_DATE('05/02/1990', 'DD/MM/YYYY'));
INSERT INTO PERSONA VALUES('MANUEL', TO_DATE('03/11/1992', 'DD/MM/YYYY'));
INSERT INTO PERSONA VALUES('ALBERTO', TO_DATE('21/01/2001', 'DD/MM/YYYY'));
INSERT INTO PERSONA VALUES('ALFREDO', TO_DATE('15/12/1981', 'DD/MM/YYYY'));
INSERT INTO PERSONA VALUES('JESUS', TO_DATE('17/04/2005', 'DD/MM/YYYY'));
INSERT INTO PERSONA VALUES('EDUARDO', TO_DATE('27/10/1960', 'DD/MM/YYYY'));

Para calcular los años entre la fecha de hoy y la fecha de nacimiento de la persona, usaremos la función month_between para calcular los meses entre dos fechas y después lo dividimos entre 12.

Como el resultado puede devolver un decimal, usaremos la función floor para redondear a la baja, por ejemplo, si el valor es 31,89 con floor es 31.

SELECT floor(months_between(SYSDATE, FECHA_NAC) /12) as edad FROM persona;

Este seria el resultado:

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Etiquetas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *