Primer dia de la semana actual
Ejemplo.
Si Sysdate = 28/10/2010 Jueves
Resultado:
Primer dia de la semana de cualquier fecha
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
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
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
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
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
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;