在MySQL解决方案中存储日期范围

Zub*_*ir1 4 php mysql database

我正在编写脚本,要求管理员能够在他想要停车场时插入日期,管理员在一个范围内插入日期.

我很难找到在MySQL中存储日期的最佳方法的解决方案.

我应该使用存储两列的日期AVAILABLE_FROM_DATEAVAILABLE_UNTIL_DATE

PLID    AVAILABLE_FROM DATE         AVAILABLE_UNTIL_DATE
1       2012-04-01                  2012-04-03
1       2012-04-05                  2012-04-15
2       2012-04-21                  2012-04-30
Run Code Online (Sandbox Code Playgroud)

或者我应该只使用一个列AVAILABLE_DATE并将管理员选择的范围存储在范围之间的每个日期的新行中?

[编辑开始]
我在上面使用单个列的意思是不将日期连接或拆分成单个列,我实际上是指将日期存储在单行中,如下所示:

PLID    AVAILABLE_DATE
1       2012-04-01
1       2012-04-02
1       2012-04-03
Run Code Online (Sandbox Code Playgroud)

对于我想要存储的所有可用日期等等.
[编辑结束]

基本上,管理员希望插入停车场可用的日期范围,并允许成员在用户正在寻找该范围内的插槽时选择该插槽.

或者有更好更简单的方法吗?

我目前正在尝试使用第一种方法,使用单独的列作为范围,但在查找范围内的停车场时无法获得所需的结果.

[编辑开始]

SELECT * FROM `parking_lot_dates`
WHERE (available_from_date BETWEEN '2012-04-22' AND '2012-04-30'
AND (available_until_date BETWEEN '2012-04-22' AND '2012-04-30'))
Run Code Online (Sandbox Code Playgroud)

我对上面的行使用以下查询,它返回空.我希望它返回具有PLID 2的最后一行.
[编辑结束]

先感谢您.

mel*_*okb 5

关于您对查询的编辑,您有内在的逻辑.您需要比较您检查的每个日期是否在范围内BETWEEN available_from_date and available_until_date,如下所示:

SELECT * FROM `parking_lot_dates`
WHERE
(
        '2012-04-22' BETWEEN available_from_date AND available_until_date
    AND '2012-04-30' BETWEEN available_from_date AND available_until_date
)
Run Code Online (Sandbox Code Playgroud)

演示:http://www.sqlfiddle.com/#!2/ 911a3/2

编辑:虽然如果你想要允许部分范围匹配,你需要两种类型的逻辑,即停车场可用4-22到4-27,你需要4-23到4-28 .您可以在4-23到4-27之间使用它,但不能使用4-28.