Jordan
Jordan

Reputation: 183

MySQL Dates between Dates

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!

Upvotes: 4

Views: 555

Answers (3)

dqhendricks
dqhendricks

Reputation: 19251

I have implimented this in my own mysql queries before.

SELECT id FROM table WHERE some_date BETWEEN start_date AND end_date

Upvotes: 0

Richard Tuin
Richard Tuin

Reputation: 4562

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.

Upvotes: 0

Diablo
Diablo

Reputation: 3418

This might sole your problem:

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

Upvotes: 1

Related Questions