在mysql中获取日期范围之间的行


Getting rows between date range in mysql

我遇到了一个严重的问题,无法解决。我试图从MySQL数据库中返回起始日期介于两个给定日期和结束日期之间的行。以下是我查询数据库的php代码:

$getRooms = mysql_query("
    SELECT * 
    FROM Tarifas 
    WHERE Start BETWEEN '2013-01-10' AND '2013-01-13' 
    AND   End   BETWEEN '2013-01-10' AND '2013-01-13'
");

开始和结束设置为DATE字段

我的数据库设置如下:

ID | RoomId | Start      | End
--------------------------------------
4  | 34562  | 2013-01-09 | 2013-10-23

如果有人能帮我弄清楚为什么这不起作用,我将不胜感激!!

查看您的查询和示例数据,也许您正在寻找一个SQL查询来查找重叠或冲突的日期范围。查询将是:

SELECT *
FROM Tarifas 
WHERE '2013-01-13' >= `Start` AND `End` >= '2013-01-10'

2013-01-13大于2013-01-09-并且-2013-10-23大于2013-01-10,因此Tarifas#4将被返回,因为它与指定日期冲突/重叠。