我想知道在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完成其余部分的方法?谢谢!
答案 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