liquorvicar: Thanks for the feedback. Unfortunately no, I can't achieve it using a GROUP BY, at least as far as I can tell. If say one record has a start date of of 2006-01-01 and lasts 5 days, I need a seperate copy of that record for every day that it overlaps with the range that I am checking for.
Sxooter: Thanks as well for your response. That generate_series function sounds like exactly what I needed, but unfortunately in this case I'm constrained to MySQL.
I've decided just to populate a table in my database with dates from now until many years down the road (using a script very similar to what you posted Sxooter). When I want a specific range I will just use a subquery to pull out the rows I need, order them, and then join that against my other table.
Thanks everyone for your input.
Ryan