You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据checkin、checkout日期统计可用与不可用客房

客房入住状态统计实现方案

核心判断逻辑

判断房间在目标日期(示例中的「现在」默认取当前系统日期,也可自定义指定)是否可用的规则:

  • 不可用:目标日期落在该房间的[checkin, checkout]闭区间内
  • 可用:目标日期早于入住日期,或晚于退房日期

方案1:SQL实现(针对数据库表数据)

假设你的表名为room_bookings,包含字段room_name(客房名)、checkin_date(日期类型,入住日期)、checkout_date(日期类型,退房日期),统计当前日期房态的SQL如下:

-- 统计可用/不可用房间数,以及对应房间列表
SELECT
  COUNT(CASE WHEN NOT (CURRENT_DATE BETWEEN checkin_date AND checkout_date) THEN 1 END) AS available_room_count,
  GROUP_CONCAT(CASE WHEN NOT (CURRENT_DATE BETWEEN checkin_date AND checkout_date) THEN room_name END SEPARATOR ', ') AS available_room_list,
  COUNT(CASE WHEN CURRENT_DATE BETWEEN checkin_date AND checkout_date THEN 1 END) AS unavailable_room_count,
  GROUP_CONCAT(CASE WHEN CURRENT_DATE BETWEEN checkin_date AND checkout_date THEN room_name END SEPARATOR ', ') AS unavailable_room_list
FROM room_bookings;

说明:如果使用SQL Server,将GROUP_CONCAT替换为STRING_AGG;如果使用Oracle,替换为LISTAGG。如果要统计指定日期的房态,把CURRENT_DATE替换为你指定的目标日期即可。

方案2:Python实现(针对文本/列表类原始数据)

如果你是在Python脚本里处理这类数据,可以参考以下代码:

from datetime import datetime

# 原始预订数据,也可以从文件/接口读取
booking_data = [
    ("Room1", "1-1-2021", "5-5-2021"),
    ("Room2", "2-2-2021", "9-9-2021"),
    ("Room3", "10-10-2021", "5-12-2021")
]
# 目标统计日期,示例对应2021-06-01,也可以用datetime.now()取当前日期
target_date = datetime.strptime("1-6-2021", "%d-%m-%Y").date()

available_rooms = []
unavailable_rooms = []

for room, checkin_str, checkout_str in booking_data:
    checkin = datetime.strptime(checkin_str, "%d-%m-%Y").date()
    checkout = datetime.strptime(checkout_str, "%d-%m-%Y").date()
    if checkin <= target_date <= checkout:
        unavailable_rooms.append(room)
    else:
        available_rooms.append(room)

# 输出结果
print(f"Available rooms now: {len(available_rooms)}")
print(f"Available rooms: {', '.join(available_rooms)}")
print(f"Not available rooms now: {len(unavailable_rooms)}")
print(f"Not available rooms now: {', '.join(unavailable_rooms)}")

运行代码即可输出你示例中完全一致的结果。


内容的提问来源于stack exchange,提问作者Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 15:09:02