On Tuesday 19 October 2004 05:18 am, Paul Makepeace wrote:
> This is perhaps more of a style question. I'm trying to find the 'right'
> way with date/time functions to pull out the last day in a month from a
> set of data that might contain rows that don't fall on the actual last
> date (e.g. Friday 2004-07-30)
>
> Foo.info_at("2004-07") # contains some logic to make "2004-07-%" for:
>
> WHERE foo_date LIKE ? ORDER BY foo_date DESC LIMIT 1
>
> This feels quite hacky to me for some reason but at least seems to work.
>
> (I'd originally had foo_date = ?::date+'1month'::interval-'1day'::interval
> !)
>
> Paul
Paul -
Just another suggestion as this probably isn't 'right' either, but it's what I
came up with to figure out the number of days in the previous month (feel
free to tell me a better way if there is one):
select date_part('days',current_date::date -
cast( date_part('days',current_date)||' days' as interval));
-doug