SQL连接包括两个不同的DATE条件

时间:2013-08-06 04:55:42

标签: mysql

我写了下面的查询。

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

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

enter image description here

但我想包含以下条件以达到上述结果。

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 )

1 个答案:

答案 0 :(得分:1)

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

MySQL STR_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数据类型,这使得使用日期变得更加容易,并且(通常)效率更高。