4

我想知道在 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

我想知道的是,有没有一种方法可以获得这些记录的“开始日期”和“结束日期”之间的日期?像这样:

2011 年 1 月 2 日,2011 年 1 月 3 日

2011 年 1 月 16 日、2011 年 1 月 17 日、11 年 1 月 18 日

或者至少有一种方法可以接近它并使用 PHP 来完成剩下的工作?谢谢!

4

3 回答 3

1

这可能会解决您的问题:

SELECT * FROM `your_table` WHERE start_date > '2011-01-01' AND end_date < '2011-01-04'
于 2011-01-06T22:36:30.100 回答
0

约旦,

这在 MySQL 4 中是不可能直接实现的。我认为这个逻辑不应该放在你的数据库层中。

但是,StackOverflow 上有一个与您的问题相关的问题,解决方案是存储过程(但为此您需要 mysql 5)。在此处查看:获取两个日期之间的日期列表

我在这个网页上发现了一种尚未准备好使用但对您的 PHP 问题的明智方法:http: //prajapatinilesh.wordpress.com/2009/05/07/get-all-dates-between-two-dates-使用-php-code/

希望这可以帮助您朝着正确的方向前进。

于 2011-01-06T22:44:35.130 回答
0

我之前在我自己的 mysql 查询中已经暗示了这一点。

SELECT id FROM table WHERE some_date BETWEEN start_date AND end_date
于 2011-01-06T23:01:36.933 回答