gpt4 book ai didi

mysql - 搜索房间可用性

转载 作者:行者123 更新时间:2023-11-30 22:30:08 28 4
gpt4 key购买 nike

这些是我的表格:

房间(roomId、roomName、roomTypeId、roomStatus)

房间类型(roomTypeId、roomTypeName、roomTypeDesc、roomTypePrice)

ReservationRoom(reservationId、roomId、checkInDate、checkOutDate、totalStay)

我从用户那里收到三个参数(入住日期、退房日期、数量),用于在 GridView 中搜索可以预订的可用房型。

这是我的 sql,显示可预订的房间类型。

SELECT rt.roomTypeName, rt.roomTypePrice, count(*) as quantity 
FROM Room r,
RoomType rt
WHERE roomStatus = 'Online'
AND r.roomTypeId = rt.roomTypeId
AND NOT EXISTS (SELECT 1 FROM ReservationRoom b
WHERE b.roomId = r.roomId
AND (@CheckInDate BETWEEN b.checkInDate AND b.checkOutDate
OR @CheckOutDate BETWEEN b.checkInDate AND b.checkOutDate
OR (@CheckInDate<= b.checkInDate AND @CheckOutDate >= b.checkOutDate)))
group by rt.roomTypeName, rt.roomTypePrice
Having COUNT(*) >= @quantity";

效果很好。但是当我的 ReservationRoom 表已经有一个记录是 checkindate (1/11/2015) 和 check out date (2/11/2015) 由客人 A 为 roomtypeA 创建时出现问题。

当客人B搜索入住日期为(2/11/2015),退房日期为(3/11/2015)时,仍然显示房型A不可用。但它应该可用,因为客人 A 已经在 2/11 退房。那么有什么办法可以让用户B在这种情况下预定房型呢?

最佳答案

您可以将类型 DATE 列转换为 DATETIME列,然后比较一天中的特定时间(即您的特定退房时间,例如上午 11 点)。

或者,将所有时间转换为 UNIX_TIMESTAMP ,然后你将得到更简单的大于/小于比较,因为它只是一个整数。

关于mysql - 搜索房间可用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34089476/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com