jueves, 20 de enero de 2011

Fechas en Oracle 1

Encontre algunos Tips para manejar fechas, en un cuaderno de apuntes de otra persona, y para darle crédito la verdad esque no tiempo de volverlo a buscar, pero si ve sus apuntes, que me comente para ponerlo en los creditos de la entrada, los comparto con la comunidad.

SYSDATE
Language: SQL
SELECT SYSDATE FROM DUAL;
Nos da el valor de la fecha actual

ADD_MONTHS
Language: SQL
SELECT add_months('21/08/08',1) FROM dual;
Suma el segundo parámetro al mes de la fecha. Para restar, pasar el mes negativo.

LAST_DAY
Language: SQL
SELECT last_day(sysdate) FROM dual;
Nos devuelve el último día, en caso de bisiestos, el 29.

NEXT_DAY
Language: SQL
SELECT next_day(sysdate,'domingo') FROM dual;
Nos devolverá el próximo domingo a partir de la fecha indicada, en este caso, la de hoy.

MONTHS_BETWEEN
Language: SQL
SELECT months_between('3/06/08','5/01/09') FROM dual;
Devuelve el número de meses entre dos fechas.

TRUNC
Language: SQL
SELECT trunc(sysdate,'year') FROM dual;
En este caso nos devuelve el primer día del año (trunca la fecha por año).
Con el mes, devolvería el primer día del mes y con el día el primer día de la semana.

ROUND
Language: SQL
SELECT round(sysdate,'year') FROM dual;
Redondea de igual forma que con los números.

CURRENT_DATE
Language: SQL
SELECT CURRENT_DATE FROM DUAL;
Devuelve la fecha actual.

SYSTIMESTAMP
Language: SQL
SELECT SYSTIMESTAMP FROM DUAL;
Devuelve todo el formato de la fecha (29/01/09 12:41:33,296000 +01:00)

EXTRACT
Language: SQL
SELECT extract(year FROM date '1998-03-07') FROM dual;
Podemos sustituir year por month o day.
También podemos obtener horas, minutos o segundos de la forma
Language: SQL
SELECT extract(hour FROM time '06:07:04') FROM dual;

TRAER EL PRIMER Y ÚLTIMO DÍA DEL MES CON UNA FECHA COMO PARÁMETRO
select trunc(sysdate, 'mm') primer_dia_del_mes,
trunc(last_day(sysdate)) ultimo_dia_del_mes
from dual;

Ya compartido, los dejo que sigan probando... probando...