domingo, 9 de febrero de 2014

Obtener Fechas Pl Sql

  • Primer dia de la semana actual

select TRUNC(SYSDATE, 'Day') Fday from dual;
Ejemplo. 
Si Sysdate = 28/10/2010 Jueves
Resultado:

  • Primer dia de la semana de cualquier fecha

select TRUNC(to_date('31/12/2010','dd/mm/yyyy'), 'Day') FDay from dual;
u obteniendo la fecha desde el sysdate.
La semana anterior
select TRUNC(SYSDATE-7 , 'Day') Fday from dual;
Para la semana siguiente
select TRUNC(SYSDATE+7 , 'Day') Fday from dual;
  • Último dia de la semana
De la semana actual

select TRUNC(SYSDATE, 'Day')+6 Fday from dual;
 Ejemplo
Si el sysdate es 28/10/2010
Resultado:


La semana anterior
select TRUNC(SYSDATE-7 , 'Day')+6 Fday from dual;
La semana siguiente
select TRUNC(SYSDATE+7 , 'Day')+6 Fday from dual;

  • Primer Dia del Mes
El mes Actual
select TRUNC(SYSDATE , 'Month') Fday from dual;
 Ejemplo
Si el sysdate es 28/10/2010
Resultado:


El mes anterior
select TRUNC(TRUNC(SYSDATE , 'Month')-1 , 'Month') Fday from dual;
El siguiente mes
select TRUNC(LAST_DAY(SYSDATE)+1 , 'Month') Fday from dual;


  • Último día del mes
Del mes actual
select TRUNC(LAST_DAY(SYSDATE)) Fday from dual;
 Ejemplo
Si el sysdate es 28/10/2010
Resultado:


El mes anterior
select LAST_DAY(TRUNC(TRUNC(SYSDATE , 'Month')-1 , 'Month')) Fday from dual;
El mes siguiente
select LAST_DAY(TRUNC(LAST_DAY(SYSDATE)+1 , 'Month')) Fday from dual;



  • Primer dia del año
Del presente año
select TRUNC(SYSDATE , 'Year') Fday from dual;
 Ejemplo
Si el sysdate es 28/10/2010
Resultado:


El año anterior
select TRUNC(TRUNC(SYSDATE , 'Year')-1 , 'Year') Fday from dual;
El año siguiente
select ADD_MONTHS(TRUNC(SYSDATE , 'Year'),12) Fday from dual;


  • Último dia del año
Del presente año
select LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE , 'Year'),11)) Fday from dual;
 Ejemplo
Si el sysdate es 28/10/2010
Resultado:

El año anterior
select LAST_DAY(ADD_MONTHS(TRUNC(TRUNC(SYSDATE , 'Year')-1 , 'Year'),11)) from dual;
El año siguiente
select LAST_DAY(ADD_MONTHS(TRUNC(TRUNC(SYSDATE , 'Year')-1 , 'Year'),-13)) from dual;

2 comentarios: