2011-02-10 147 views
6

Necesito una función en Oracle de esta manera.Obtener el último día del mes anterior en Oracle Función

Cuando le doy a un parámetro una fecha simple. Entonces la función debería obtenerme el último día del mes anterior.

Ejemplo:

FunctionName(10.02.2011) Result should be 31.01.2011 

FunctionName(21.03.2011) Result should be 28.02.2011 

FunctionName(31.07.2011) Result should be 30.06.2011 (Even date is last day of month) 

¿Cómo puedo hacer eso? Por cierto, nunca uso Oracle.

Respuesta

26
SELECT LAST_DAY(ADD_MONTHS(yourdate,-1)) 
+2

Estas funciones han sido parte de Oracle estándar durante un par de décadas. – APC

+1

@APC oh, es bueno saber :). En realidad soy nuevo en Oracle. – Lamak

2

select LAST_DAY(ADD_MONTHS(sysdate, -1)) from dual;

formato de fecha que resulta a su gusto (lo dejo para ti;)

7

Como alternativa a las otras respuestas aquí, también se puede encontrar el último día del mes anterior al obtener el día antes del primer día de este mes

SELECT trunc(your_date, 'MM')-1 as new_date from your_table 

que probablemente todavía recomendaría el uso de last_day(add_months(xxx,-1)) pero sólo mostrando una alternativa.

Cuestiones relacionadas