当前位置: 首页 > 知识库问答 >
问题:

按日期搜索 Mysql 查询

裴俊能
2023-03-14

我尝试创建一个查询,显示入住和退房日期之间的可用酒店。此外,当我为特定房间预订时,我将他们的预订列设置为1。这意味着,在现实生活中,当结账日期到来时,触发函数将该预订列设置成0。

如果酒店的所有房间都已预订(预订=1),并且这些房间的签入-退房日期是特定日期(签入-退房输入),则不要将该酒店放在列表中。我的查询不会显示我想要的结果。

查询:输入:国家(状态)、签入和签出。

SELECT DISTINCT a.* FROM accommodation a INNER JOIN cb_states s ON a.state = s.id
INNER JOIN accommodation_rooms ar ON a.id = ar.accommodation
WHERE state = 1 AND a.id NOT IN
(
    SELECT 1 FROM booking b
    WHERE
    (
        (b.arrival_date BETWEEN '2017-11-16' AND '2018-03-16') 
        OR
        (b.departure_date BETWEEN '2017-11-16' AND '2018-03-16')
    )
)

当我运行查询时,它总是显示所有酒店,不管日期。如果我写<代码>...其中ar.booked = 0,state = 1,a.id不在...,那么它不显示住宿id 13,但是当我更改日期时它也不显示。

共有1个答案

金阳曜
2023-03-14

您的查询存在多个问题:

    < Li > < code >不在列表具有< code >选择1。这并没有给< code>NOT IN列表带来很大的变化。 < li >您的重叠逻辑是错误的。 < li >我认为您需要将住宿房间连接到预订的住宿房间。

所以:

SELECT DISTINCT a.*
FROM accommodation a INNER JOIN
     cb_states s
     ON a.state = s.id INNER JOIN
     accommodation_rooms ar
     ON a.id = ar.accommodation
WHERE s.state = 1 AND
      a.id NOT IN (SELECT br.accommodation_room
                   FROM booking b JOIN
                        booked_room br
                        ON b.?? = br.??
                   WHERE b.arrival_date <= '2018-03-16' AND
                         b.departure_date >= '2017-11-16' 
                  );
 类似资料:
  • 问题内容: 大家好,我有以下问题。我的MySQL数据库中有一个保留表,日期列定义为DATETIME。我需要使用hibernate进行查询以找到一天中的所有储备,无论是小时还是同一年的月份和日期,而我正在这样做 … 我真的不知道如何进行比较,并只带给我指定日期的信息,没有任何帮助吗? 问题答案: 我希望有一种与日期无关的将日期时间转换为日期的方法。通常,这就是我处理您的情况的方式。

  • 我需要帮助编写JPA查询(或函数)来删除搜索查询中的时间戳。 我可以通过两种方式使用Mysql查询。 选择*from table_name,其中日期(create_date)介于“2019-07-01”和“2019-07-31”之间 选择*from table_name,其中create_date介于“2019-07-01 00:00:00”和“2019-07-31 23:59:59”之间。 我可

  • 问题内容: 我在MySQL中有一张表,该表显示了我每天记录的小时数。我正在尝试建立一个视图,该视图将允许我按块/天范围快速将数据分组。最简单的情况是每月一次,这并不难。我可以将日期选择为“%y-%m”,然后按该列分组。 前任: 如果我按月分组,那很好。但是我的问题是,我需要从每月的13号到下个月的12号进行分组(例如:7月13日至8月12日,8月13日至9月12日,等等)。 有没有一种简单的方法可

  • 我有一个lucene查询,可以对索引字段进行全文搜索。我想将日期范围添加到此查询。 我找到了这个问题并在那里使用了答案:如何在日期之间搜索(Hibernate搜索)? 但当我想在两个日期之间获取数据时,它什么也不返回。我使用的是MSSQL数据库,日期字段的类型是datetime。但它在实体类中被注释为。 这是我的实体类: 这就是我进行全文搜索的地方: 有两种不同的查询。一个是在指定字段上进行全文通

  • 问题内容: 我想要 问题是日期存储为! 这是我有约会的例子: 请注意,有些记录有几秒钟,有些则没有 我根本不在乎时间,我只需要日期 是领域 这是行不通的: 这: 正在返回: 这: 正在返回: OMG小马: 我把所有东西都放在第一个空格之前: 现在我得到这个返回: 问题答案: 您想在日期之间进行搜索,并将其存储为日期。通过将它们存储为字符串,您就可以自己射击。您基本上需要从字符串中提取日期部分(使用

  • 我有一个ISODate格式的“DateAdd”Mongo集合 所以现在是当地时间1小时后 当我尝试获取2018-08-31 06:00:00之后添加的记录时,使用以下查询,我无法获取UTC中的记录 在MongoDB中搜索日期字段时,如何转换UTC日期?