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

时间:2012-09-09 15:49:38

标签: php mysql sql date datetime

我遇到了一个我无法弄清楚的严重问题。我试图从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'
");

开始和结束设置为日期字段

我的数据库设置如下:

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

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

1 个答案:

答案 0 :(得分:3)

查看您的查询和示例数据,也许您正在寻找SQL Query to Find Overlapping or Conflicting Date Ranges。查询将是:

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