【问题标题】:Get records with HQL query between two dates获取两个日期之间的 HQL 查询记录
【发布时间】:2020-04-14 10:35:44
【问题描述】:

我正在努力在这段时间内买到一辆负担得起的汽车

SELECT c FROM Car c WHERE c NOT IN (SELECT r.car from Rental r WHERE r.startDateTime >= :startDate AND r.endDateTime <= :endDate)

此查询无效。例如,我的endDater.endDateTime 更多

我正在尝试使用 BETWEEN 解决此问题,但我的请求有误

SELECT c FROM Car c WHERE c NOT IN (SELECT r.car FROM Rental r WHERE :startDate OR :endDate BETWEEN r.startDateTime AND r.endDateTime)

【问题讨论】:

  • 为什么你的第一个查询是错误的?
  • @SimonMartinelli 如果汽车从 12-00 租到 18-00,我的 :starDate 是 13-00 和 endDate 17-00,那么我可以得到这辆车。但这是错误的

标签: database hibernate hql


【解决方案1】:

您的查询应如下所示:

SELECT c FROM Car c 
WHERE c NOT IN (SELECT r.car FROM Rental r 
                WHERE (:startDate BETWEEN r.startDateTime AND r.endDateTime)
                   OR (:endDate BETWEEN r.startDateTime AND r.endDateTime))

【讨论】:

    猜你喜欢
    • 2014-02-11
    • 2019-03-14
    • 2017-05-02
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 2013-04-16
    • 2016-08-04
    • 1970-01-01
    相关资源
    最近更新 更多