สมมุติแบบนี้นะครับ ใน database มีการตั้งช่วงจองไว้คือ check_in กับ check_out นะครับ
ให้ใน database มีการจองไว้แล้วดังนี้ check in 2011-04-08 check out 2011-04-09
ทีนี้ต้องการเช็กว่าห้องว่างหรือไม่ในช่วงวันที่ 2011-04-06 ถึง 2011-04-10 คำตอบก็น่าจะเป็นไม่ว่างใช่มั้ยครับ
แต่ผมลองใช้ทั้ง
"select * from ... where ('2011-04-06' BETWEEN check_in and check_out) and ('2011-04-09' BETWEEN check_in and check_out)";
"select * from ... where ('2011-04-06' BETWEEN check_in and check_out) or ('2011-04-09' BETWEEN check_in and check_out)";
ปรากฏว่าคำตอบที่ได้กลายเป็นว่าห้องว่าง จึงอยากจะขอคำแนะนำหน่อยครับผม ยังไงก็ขอบคุณล่วงหน้านะครับ
แก้ไขนะครับ คิดว่าน่าจะเป็นแบบนี้มากกว่าไม่ทราบว่าจะถูกต้องหรือเปล่าครับ
$sql="select * from ... where ('2011-04-06' BETWEEN date_from and date_to) or ('2011-04-09' BETWEEN date_from and date_to) or (date_from > '2011-04-06' and date_to <'2011-04-09')";