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:

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.

Este seria el resultado:

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

Compartir

1 comentario

  1. Linda Franco

    Hola, buenas tardes! Me gustaría saber qué se le podría agregar a ese query para calcular también los meses y días que tiene. No estoy segura de si lo siguiente sería correcto. Gracias!
    floor(months_between(SYSDATE, FECHA_NAC)/12) años,
    floor(mod(months_between(SYSDATE, FECHA_NAC),12)) meses,
    floor(mod(months_between(SYSDATE, FECHA_NAC),7)) días // Aquí no me convence el 7 porque siento que sería más bien 30 por los días del mes, pero cómo saber si es un día de 30 o 31, o si se trata de febrero?

Deja una respuesta

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


Warning: Trying to access array offset on value of type null in /home2/discodur/public_html/discoduroderoer/wp-content/themes/disto/single.php on line 539