Como apunte, es interesante saber que en marzo y en octubre no da el número exacto de días, porque en marzo da 30 días y 23 horas, mientras que en octubre devuelve 31 días y 1 hora por el cambio de hora que se produce, si necesitas saber el número de días que tiene marzo, sería necesario comprobarlo para obtener 31 días de la siguiente forma, por ejemplo:
case when DATE_PART('hours', DATE_TRUNC('month', current_date) + '1 MONTH'::interval - DATE_TRUNC('month', current_date)) = 23 then DATE_PART('day', DATE_TRUNC('month', current_date) + '1 MONTH'::INTERVAL + '1 HOUR'::INTERVAL - DATE_TRUNC('month', current_date)) else DATE_PART('day', DATE_TRUNC('month', current_date) + '1 MONTH'::INTERVAL - DATE_TRUNC('month', current_date)) end
Gracias, muy útil! ;)
ResponderEliminarComo apunte, es interesante saber que en marzo y en octubre no da el número exacto de días, porque en marzo da 30 días y 23 horas, mientras que en octubre devuelve 31 días y 1 hora por el cambio de hora que se produce, si necesitas saber el número de días que tiene marzo, sería necesario comprobarlo para obtener 31 días de la siguiente forma, por ejemplo:
ResponderEliminarcase when DATE_PART('hours', DATE_TRUNC('month', current_date) + '1 MONTH'::interval - DATE_TRUNC('month', current_date)) = 23 then
DATE_PART('day', DATE_TRUNC('month', current_date) + '1 MONTH'::INTERVAL + '1 HOUR'::INTERVAL - DATE_TRUNC('month', current_date))
else
DATE_PART('day', DATE_TRUNC('month', current_date) + '1 MONTH'::INTERVAL - DATE_TRUNC('month', current_date))
end