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

使用SQL查找最近的未预订日期

场地预订替代日期查询优化问题

场景

用户选择一个日期,系统检查该日期及时段是否已预订(此部分逻辑正常)。
若该日期及时段已被预订,需为用户展示n个替代日期。要求替代日期尽可能接近用户所选日期,且列表从查询执行当日开始(后端已处理此起始逻辑)。

当前实现代码

SELECT alternative_date
FROM GENERATE_SERIES(
    TIMESTAMP '2022-08-20 05:00:00',
    date_trunc('month', TIMESTAMP '2022-08-20 07:00:00') + INTERVAL '1 month - 1 day',
    INTERVAL '1 day'
) AS G(alternative_date)

WHERE NOT EXISTS(
    SELECT * FROM events T
    WHERE T.bookDate::DATE = G.alternative_date::DATE
)

这段PostgreSQL代码通过GENERATE_SERIES生成从2022-08-20到8月底的日期序列,筛选出events表中bookDate未记录的日期(即未被预订的日期)。

待解决的三个核心问题

  • 结合用户偏好预订日期,如何筛选出最接近的可选替代日期?这是当前首要难题。
  • 如何关联用户指定的开始/结束时间,明确告知用户替代日期的对应时段是否有空位?需给出解决方向。
  • 尝试添加判断场地是否开放的WHERE条件时,与现有NOT EXISTS条件结合执行失败,需修复该逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 14:54:24