MySQL日期之间的日期

时间:2011-01-06 22:31:27

标签: php mysql datediff

我想知道在MySQL 4.1+中是否有办法查询记录中日期范围之间的具体日期?

举一个简单的例子,我有两条日期时间范围的记录,比如

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

我想知道的是,有没有办法让每个记录的“开始日期”和“结束日期”之间的日期?像这样:

1/2 / 11,1 / 3/11

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

或者至少是一种接近它并使用PHP完成其余部分的方法?谢谢!

3 个答案:

答案 0 :(得分:1)

这可能完全解决您的问题:

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

答案 1 :(得分:0)

约旦,

MySQL 4无法直接实现这一点。我认为不应将此逻辑放在数据库层中。

然而,StackOverflow上存在一个与您的问题有关的问题,解决方案是一个存储过程(但为此您需要mysql 5)。在此处查看:Get a list of dates between two dates

我在这个网页上找到了一个不准备使用,但在PHP中解决问题的明智方法: http://prajapatinilesh.wordpress.com/2009/05/07/get-all-dates-between-two-dates-using-php-code/

希望这能帮助你朝着正确的方向前进。

答案 2 :(得分:0)

我之前在我自己的mysql查询中实现了这个。

SELECT id FROM table WHERE some_date BETWEEN start_date AND end_date