ถ้าเป็น Date() ผมใช้แบบนี้ในการเช็คอ่ะครับ คือ มันมี ทั้งวันทีแ่ละเวลา แต่ผมแยกฟิลด์ Date และ time Code (PHP)
$strSQL = "SELECT * FROM tb_reserve_detail WHERE ((reserve_detail_start between '".$_POST["reserve_start"]."' and '".$_POST["reserve_end"]."') or ";
$strSQL .= " (reserve_detail_end between '".$_POST["reserve_start"]."' and '".$_POST["reserve_end"]."')) and ";
$strSQL .= " ((reserve_detail_strtime between '".$time1."' and '".$time2."') or ";
$strSQL .= " (reserve_detail_endtime between '".$time1."' and '".$time2."')) and reserve_detail_hall = '".$_POST["hallid"]."' and reserve_detail_status in('1','0') ";
$objQuery = mysql_query($strSQL);