At 11:30 PM 2/25/04, Joe Conway wrote:

Greg Sabino Mullane wrote:
How to find the last sunday/mon..../sat of any given month.

There is probably a smoother way to do it, but here is a quick little function to do what you ask. Feed it a date and a number, where 0 is Sunday, 1 is Monday, etc.

oops...forget my last reply...I was a bit too quick on the draw. Try this instead:


regression=# select date_trunc('month', current_date + '1 month'::interval) - '1 day'::interval;
?column?
---------------------
2004-02-29 00:00:00
(1 row)


Joe


But the original request was for a specific day-of-week. So use Joe's answer above to get last day of month, and use 'dow' to determine the day-of-week of that day. Let's call that dow1. If the day-of-week being asked for is dow2 then:
if dow1 < dow2
return (last-day-of-month - dow1 - 7 + dow2)
else
return (last-day-of-month - dow1 + dow2)
I'm no good at coding pgsql functions, so I'm not going to attempt proper syntax.


Frank


---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faqs/FAQ.html

Reply via email to