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 开发者_Python百科 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!
This might sole your problem:
SELECT * FROM `your_table` WHERE start_date > '2011-01-01' AND end_date < '2011-01-04'
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.
I have implimented this in my own mysql queries before.
SELECT id FROM table WHERE some_date BETWEEN start_date AND end_date
精彩评论