SELECT DAY ( LAST_DAY( DATE_ADD( DATE_ADD( DATE_ADD( CURRENT_DATE, INTERVAL - DAYOFYEAR( CURRENT_DATE ) DAY ), INTERVAL 1 DAY ), INTERVAL 1 MONTH ) ) ) FROM DUAL