我写了下面的查询。
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 )
答案 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
数据类型,这使得使用日期变得更加容易,并且(通常)效率更高。