php - 我想在sql中的两个日期之间搜索

标签 php mysql

我有两张 table ,这张 table 的名字是“rooms” Table Rooms另一个是“预订”!Table Bookings

我现在加入了两个表,我想要在之间搜索时的值

book_form = "2016-12-30"book_to = "2016-12-31"

返回true是因为“bookings”表中不存在这两个日期,并且在之间搜索

book_form = "2016-12-30"book_to = "2017-01-05"book_form = "2017-01-03"book_to = "2017-01-15"

它将返回 false,因为预订表中存在该日期。

这是我的查询。

select * from rooms join room_book on rooms.room_id = room_book.room_id 
where status = 'available' and room_book.book_from NOT BETWEEN '2016-12-30' 
AND room_book.book_to NOT BETWEEN '2016-12-31'

最佳答案

Kishan Patel 的答案返回两个日期之间的所有记录。因此,如果您想要判断两个日期之间是否有房间可用,您可以执行以下操作:

SELECT IF(COUNT(*) > 0, TRUE, FALSE) AS NewResult
from rooms 
join room_book on rooms.room_id = room_book.room_id
where status = 'available' 
and room_book.book_from >= '2016-12-30' AND room_book.book_to <= '2016-12-31'

关于php - 我想在sql中的两个日期之间搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41392645/

相关文章:

php - 如何在 echo statements.code 中插入 php 代码(substr)

php - 即使我更改参数,查询结果也是相同的

PHP unicode解码

php - 在 PHP 中使用 PayPal 确认已处理的付款

php - 在我的 PHP MySQL Web 应用程序中存储用户国家和州/省/郊区/地区的最有效和最简单的方法是什么?

mysql - sql - 单表查询与规范化

mysql - 从 MySQL 中的 int 列中选择时如何输出枚举/字符串

php - 新的 mysqli 与 mysqli_connect

php - 如何有效地从大表中计算平均值?

php - 使用 Amazon SES 通过 PHP 发送时,并非所有邮件都会被收件人收到