martes, 17 de marzo de 2015

Funciones con Fechas

Cuando trabajamos con fechas, se debe tener en cuenta que la aritmética de fechas en Oracle trabaja en función de un día. Aunque podemos trabajar con cualquier fecha,  Oracle dispone de varias funciones que operan con tipos de datos "date".  

SYSDATE() es la función de fecha más utilizada Oracle. La función devuelve la fecha y la hora en el formato de fecha de Oracle por defecto.

Para adicionar y sustraer días a una fecha, simplemente usamos los signos + o - respectivamente. Algunos ejemplos: 

SELECT sysdate + 7 FROM dual;
SELECT sysdate - 30 FROM dual;
SELECT to_char(sysdate - 14, 'MM/DD/YYYY HH:MI AM') FROM dual;

En el primer ejemplo, vemos que la consulta retorna la fecha siete días a partir de hoy. La segunda retorna la fecha de hace 30 días. En la tercera, se ha usado la función de conversión to_char, para ver las horas y minutos. Esto nos muestra que mientras la fecha, ha cambiado, el tiempo no cambia.

ADD_MONTHS(f,n): agrega a una fecha, un número de meses. Si el segundo argumento es positivo, se le suma a la fecha enviada tal cantidad de meses; si es negativo, se le resta a la fecha enviada tal cantidad de meses.

select add_months('10/06/2015',5) from dual; --retorna "10/11/2015"
select add_months('10/06/2015',-5) from dual; --retorna "10/01/2015"


LAST_DAY(f): retorna el ultimo día del mes de la fecha enviada como argumento.

select last_day('10/02/2015') from dual;-- "28/02/2015"
select last_day('10/08/2015') from dual;-- "31/08/2015"

MONTHS_BETWEEN(X,Y): retorna el numero de meses entre las fechas enviadas como argumento. 

select months_between('21/05/2015','21/06/2015') from dual;-- retorna 1

NEXT_DAY(fecha,dia): retorna una fecha correspondiente al primer día especificado en "dia" luego de la fecha especificada. 

select next_day('10/08/2015','LUNES') from dual;

No hay comentarios:

Publicar un comentario