-1

我写了下面的查询。

SELECT bmr_multi_price. * 
FROM bmr_multi_price
INNER JOIN bmr_rooms ON bmr_rooms.resort_id = bmr_multi_price.resort_id
AND bmr_rooms.id = bmr_multi_price.room_id

对于上述查询,我​​得到了以下结果集。

在此处输入图像描述

但我想包括以下条件来实现上述结果。

WHERE ( '08/02/2013' BETWEEN bmr_multi_price.from_date AND bmr_multi_price.to_date ) OR ( '08/03/2013' BETWEEN bmr_multi_price.from_date AND bmr_multi_price.to_date )
4

1 回答 1

1

如果查询未返回预期结果,可能的解释是您正在比较字符串,而不是日期。

MySQLSTR_TO_DATE函数是将给定格式的字符串转换为 DATE 值的便捷方法。根据结果​​集中返回的值,我将猜测该字符串表示 mm/dd/yyyy 格式的日期。

STR_TO_DATE('08/12/2013','%m/%d/%Y')

如果这些列被定义为字符,而不是 DATE,那么您也可以转换它们:

STR_TO_DATE(bmr_multi_price.from_date,'%m/%d/%y')

MySQL 提供了一种DATE数据类型,它使处理日期变得更加容易并且(通常)更加高效。

于 2013-08-06T05:07:56.143 回答