我遇到了一个我无法弄清楚的严重问题。我试图从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
如果有人能帮我弄清楚为什么这不起作用,我们将不胜感激!!
答案 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