开发者

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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜