【问题标题】:Get the closest date if it doesn't exist in the inputted date range如果输入的日期范围内不存在,则获取最接近的日期
【发布时间】:2011-09-16 08:48:05
【问题描述】:

我现在正在做一个后端,我正在尝试按日期范围列出房间数量。

数据库结构

id room_type_id room_count date_applied
1  1            2          2011-09-01
1  1            3          2011-09-05
1  1            1          2011-09-06

在 HTML 中:

如果用户输入 来自:2011 年 9 月 1 日 致:2011 年 9 月 6 日。 这将是显示器。 (这已经可以了)

Date          Room Count
2011-Sept-1   2
2011-Sept-2   2
2011-Sept-3   2
2011-Sept-4   2
2011-Sept-5   3
2011-Sept-6   1

我现在的问题是,当用户输入 From 和 To 时,已经超出了数据库中存储的数据的范围。样本:从:2011-09-07 到:2011-09-09

输出应该显示在 HTML 中应该是这样的。

Date          Room Count
2011-Sept-7   1
2011-Sept-8   1
2011-Sept-9   1

它将获取数据库中最近/最后的数据。对于此示例,它将是 2011-09-06

感谢您的帮助。

【问题讨论】:

  • 是否应该只查找与较低日期相关的较近日期?或者还有上限日期?
  • 它只会寻找最接近的较低日期。

标签: php mysql sql


【解决方案1】:

为此,您可能需要运行子查询来查找最近的最低日期?然后从那个日期开始到结束日期。

例如。

SELECT * FROM tbl WHERE date BETWEEN (SELECT date FROM tbl WHERE date < lower_range LIMIT 1 ) AND upper_range

【讨论】:

    猜你喜欢
    • 2022-12-18
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 2013-03-02
    • 2015-09-30
    • 1970-01-01
    相关资源
    最近更新 更多