PL-SQL Procedures en OracleSi aprendes como se deben Restar dos Fechas en los PL-SQL Procedures en Oracle podrás obtener la cantidad de días, horas, minutos y segundos que han transcurrido entre la primera fecha y la segunda fecha.

Para restar dos fechas primero se debe procurar que siempre la primera fecha sea mayor que la segunda fecha, de lo contrario, el resultado entregado no será el esperado.

En los PL-SQL Procedures en Oracle es muy fácil realizar operaciones con fechas, ya que solo aplicando algunas operaciones matemáticas básicas se pueden obtener los resultados deseados rápidamente.

Revisemos algunos ejemplos prácticos para que entiendas con mayor claridad como se deben restar fechas en los PL-SQL Procedures en Oracle.

Ejemplo #1: Supone que deseas obtener la cantidad de días trabajados durante el mes por un empleado, veamos como se hace:

/* PL-SQL Procedures en Oracle */

Ldt_primer_dia          date:= to_date(’01-03-2012’,’dd-mm-yyyy’);

Ldt_dia_actual           date:=  to_date(’22-03-2012’,’dd-mm-yyyy’);

Lin_dias_trabajados   number(3);

Begin

Lin_dias_trabajados         := (ldt_dia_actual – ldt_primer_dia);

End;

En este ejemplo se restan dos fechas, donde primero se coloca la fecha mayor (ldt_dia_actual) menos la fecha menor (ldt_primer_dia). El resultado de esta operación es 21 días, este resultado puede ser correcto dependiendo del contexto del PL-SQL Procedures en Oracle donde se aplique, para este caso asumiré que es un valor erróneo ya que necesito obtener 22 días como resultado, para corregir el problema se debe realizar lo siguiente:

/* PL-SQL Procedures en Oracle */

Lin_dias_trabajados         := (ldt_dia_actual – ldt_primer_dia) + 1;

A la operación se agrego que se sume 1 día para poder obtener como resultado los 22 días.

TÚ REPORTE: “Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos”

¡ Haz Clic Aquí y Descárgalo GRATIS Ahora !

Ejemplo #2: Supone ahora que deseas obtener las horas, minutos y segundos que ha trabajado el empleado, veamos como se hace:

/* PL-SQL Procedures en Oracle */

Select

((sysdate – mtra.primer_dia) + 1) dias,

((sysdate – mtra.primer_dia) + 1) * 24 horas,

((sysdate – mtra.primer_dia) + 1) * 24 * 60 minutos,

((sysdate – mtra.primer_dia) + 1) * 24 * 60 * 60 segundos

From t_mes_trabajado mtra

Where mtra.id_empleado = pin_id_empleado;

En este ejemplo las operaciones se realizan dentro de una consulta SELECT donde se utiliza la variable de sistema SYSDATE para obtener la fecha actual, luego se realizan las operaciones para obtener las horas, minutos y segundos que han transcurrido desde el primer día del mes hasta hoy (fecha actual).

La Base de Datos Oracle proporciona una serie de funciones que permiten manipular fechas para obtener distintos datos dentro de los PL-SQL Procedures en Oracle, revisaremos cada una de ellas en un nuevo artículo.

Te propongo que pruebes de inmediato estos ejemplos en tu Base de Datos con tus propias tablas, PL/SQL Procedure y PL/SQL Function, para que comiences a ejercitar la mano y aprendas a dominar esta nueva técnica en tus PL/SQL Procedures en Oracle.

Estoy muy interesado en conocer tu opinión y/o comentario sobre este artículo, también cuéntame sobre qué es lo que quieres saber de PL/SQL Procedures en Oracle y/o dime cuál es tu principal frustración a la hora de trabajar con PL/SQL Procedures en Oracle. Estaré muy atento respondiendo tus preguntas y/o comentarios, gracias.

Saludos

Roberto Vicencio - Para Tu Éxito con Oracle.

Director del Curso “Domina Tus Packages En Oracle