Question

I am wondering if there is a way, in MySQL 4.1+, to query the specific dates between date ranges in my records?

For a quick example, I have two records with datetime ranges, like

ID  |  Activity  |  Start Date         | End Date

1      Closed       1/1/11 11:00:00      1/4/11 11:00:00

2      Open         1/15/11 10:00:00     1/19/11 09:00:00

What I want to know is, is there a way I can get the dates between the "Start Date" and "End Date" for each of these records? Like so:

1/2/11, 1/3/11

And

1/16/11, 1/17/11, 1/18/11

Or at least a way to get close to that and use PHP to finish the rest of the way? Thanks!

Was it helpful?

Solution

Jordan,

This is not directly possible with MySQL 4. And i think this logic should not be put in your database layer.

There is however a question on StackOverflow that relates to your problem and the solution is a stored procedure (but for that you need mysql 5). View it here: Get a list of dates between two dates

I found a not ready to use, but sensible approach to your problem in PHP at this web-page: http://prajapatinilesh.wordpress.com/2009/05/07/get-all-dates-between-two-dates-using-php-code/

Hope this helps you in the right direction.

OTHER TIPS

This might sole your problem:

SELECT * FROM `your_table` WHERE start_date > '2011-01-01' AND end_date < '2011-01-04'

I have implimented this in my own mysql queries before.

SELECT id FROM table WHERE some_date BETWEEN start_date AND end_date
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top